我正在尝试在文本行中匹配年份(例如1975或2019)。
正则表达式[12][09]\d\d
导致正确的匹配,但我想对其进行微调,使其与较长时间戳的年份部分不匹配,即01.01.2019应该不进行比赛。
我试图在单词边界\b[12][09]\d\d
前面加上小点,但似乎也满足了这个要求。
我正在尝试在文本行中匹配年份(例如1975或2019)。
正则表达式[12][09]\d\d
导致正确的匹配,但我想对其进行微调,使其与较长时间戳的年份部分不匹配,即01.01.2019应该不进行比赛。
我试图在单词边界\b[12][09]\d\d
前面加上小点,但似乎也满足了这个要求。
您可以使用
\b(?<!\d\.)(?:19|20)\d\d\b(?!\.\d)
请参见regex demo
详细信息
\b
-单词边界(?<!\d\.)
-当前位置之前,不能有数字,后跟一个点(?:19|20)
-19
或20
\d\d
-任意两位数字\b
-单词边界(?!\.\d)
-当前位置的右边,应该没有.
和一个数字。