正则表达式用或情况
最简单的方法可能是与负前瞻:
M(?!0{3})\d{3}
[Regex101]
这符合字面M
,将检查接下来的事情是不是三个零,然后匹配三位数。
如果你想阻止一组特定的数字,您可以修改前瞻到(这里0,2 5,6)检查特定重复数字:
M(?!([0256])\1{2})\d{3}
[Regex101]
要检查所有三位数字,请将[0256]
替换为\d
。这个正则表达式对一个数字进行前瞻检查,然后使用反向引用测试它是否重复两次。
一个不太冗余的方法可能是把捕获组先行外:
M(\d)(?!\1{2})\d{2}
[Regex101]
这个版本说来捕捉一个数字,确保它不重复两次以上,然后再捕获两个数字。
感谢发布,将删除我的。 –
@cᴏʟᴅsᴘᴇᴇᴅ对不起,我在手机上,但没有与应用程序。甚至没有意识到还有其他答案。 –
非常感谢!不知道那会很复杂。新的正则表达式在这里。 – NewbieCoder
像这样M([0-9] {2} [1-9]) – Gunner
@Gunner但是,如果前两位数字不是0,最后一个可能是0,所以该模式不会工作。 –
三重零负的前瞻性。 –