如何匹配负向后观和正向前瞻之间未指定的数字位数

时间:2017-02-15 07:26:33

标签: regex

我正在尝试创建一个匹配以下日语字符串中的数字的正则表达式

4日   
12日

完全忽略以下字符串。

3月01日
3月1日
3月31日

到目前为止,我能够得到的最接近的是:

(?<!月)([0-9]{1,2})(?=日)

但这最终与3月01日和3月31日所包含的“1”相匹配。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

向lookbehind添加数字图案:

(?<![0-9月])([0-9]{1,2})(?=日)
     ^^^

请参阅regex demo

如果当前位置前面有数字或(?<![0-9月]),则 lookbehind将失败所有匹配,并且回溯不会返回不需要的上下文中的部分数字。