我正在尝试在PHP中为mysql编写一个正则表达式来查找(至少出现一次)连续3个相同字符,但不是4个(或更多)相同的字符。
例如“000”我想找到:
但不是:
我已经尝试过下面的代码,我认为它会匹配3个零,前面跟着零个或多个不是0的字符,但是这会产生一些单个0和一些000000的行
REGEXP '[^0]*[0{3}][^0]*'
非常感谢。
答案 0 :(得分:2)
如果您计划在MySQL中使用正则表达式,则无法使用外观。因此,您可以使用带有否定字符类和锚点的替换:
email
请参阅regex demo
说明:
(^|[^0])0{3}([^0]|$)
- 匹配字符串开头((^|[^0])
)或^
以外的字符0
- 正好是3个零0{3}
- 与([^0]|$)
以外的字符或字符串结尾(0
)匹配的组。