我想匹配任何前面没有x,后面也没有y的数字。
我想出了这样的办法:
(?<!x)(\d+)(?!y)
但是,这并没有真正的帮助,因为我还想匹配字符串中的数字,比如x123456y
换言之,我希望这两种断言要么都有效,要么都不起作用。
示例:
从“x123”开始,将匹配“123”
从“456Y”开始,将匹配“456”
从“789”开始,将匹配“789”
“x123y”中没有匹配的内容
你能帮忙吗?

最佳答案

(?<!\d)(?!(?<=x)\d+(?=y))\d+

基本上,您可以为不想匹配的内容创建一个regex-(?<=x)\d+(?=y)-并将其放在一个否定的展望中。如果成功了,你可以继续使用数字。但这还不够,因为它仍将与23中的x123y匹配。在数字后面添加一个负查找可以确保匹配只在数字运行的开始处开始。

关于php - 正则表达式断言-两者或都不,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8468308/

10-11 23:36