我有一个列表如下:
20110512192714
20794709157481
20121203175303
20794709157481
20210131201708
20211101050154
20220501022609
79776361952441
字符串
现在我想在notepad++中通过regex从左侧选择以年和月开头的行。
请注意,年份必须从2000年开始到2023年。
我试着使用regex:
20(?:0[0-9]|1[0-9]|20)[0-1][0-9]
型
上面的正则表达式运行良好,但有两个问题:
1.不能选择整行目标和选择一段目标行。(有时可能数字的长度不一样)
1.它不能选择某些行,如以下行:
20211101050154
20220501022609
我的正则表达式问题在哪里?
1条答案
按热度按时间iqjalb3h1#
您的模式
20(?:0[0-9]|1[0-9]|20)[0-1][0-9]
匹配:20后跟范围00-09或范围10-19或20后跟00-19或01-19
如果你想匹配一个以2000 - 2023开头的行,并且应该只包含数字:
字符串
如果您想包含从1到12的月份,并带有可选的前导零:
型
年份模式匹配:
^
字符串开头20
按字面匹配(?:
备选方案的非捕获组2[0-3]
匹配20,21,22,23|
或[01]\d
匹配00到19)
关闭非捕获组\d*
匹配可选数字参见regex demo。
如果要匹配可能包含任何字符的行的其余部分,可以将模式的最后一部分从
\d*$
更改为.*