我目前只有匹配所有數字的正則運算式。但我也想排除日期中的數字
排除日期中的數字 -> 2022 年 8 月 11 日。但包括沒有日期的數字。
這是我的正則運算式:\d
uj5u.com熱心網友回復:
區分日期和數字的是“/”或“-”的存在。因此,您可以在模式之后使用負前瞻,在模式之前使用負前瞻。
(?<![\d\-\/])\d (?![\d\-\/])
檢查正則運算式101
uj5u.com熱心網友回復:
知道字串中的日期會是什么樣子或將來會是什么樣子很重要。
如果格式是并且永遠都是,08/11/2022那么您可以執行類似(?<!\/|\d)\d (?!\/|\d).
負后視(?<!\/|\d)將阻止捕獲斜線或其他數字之后的數字(這很重要,否則只有斜線之后的第一個數字不會被捕獲,\d 如果沒有斜線,仍然會連續捕獲多個數字)。負前瞻對后面的斜杠和數字也有同樣的作用。
但是,這也將阻止捕獲不在日期中但在斜線之后/之后的數字。也不是到處都支持負面的lookbehinds。
最好先通過嘗試專門匹配日期來簡單地洗掉日期:
((\d{1,2})(\/|\.)(\d{1,2})(\/|\.)(\d{4}|\d{2}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/532283.html
標籤:C#正则表达式日期数字
