MySQL正则表达式,用于在更大的字符串中完全匹配3个相同的字符,但不匹配4个相同的字符
我试图在PHP中为mysql编写一个正则表达式,以便在一行中查找(至少出现一次)恰好3个相同的字符,而不是4个(或更多)相同的字符 例如,对于“000”,我想找到:MySQL正则表达式,用于在更大的字符串中完全匹配3个相同的字符,但不匹配4个相同的字符,mysql,regex,Mysql,Regex,我试图在PHP中为mysql编写一个正则表达式,以便在一行中查找(至少出现一次)恰好3个相同的字符,而不是4个(或更多)相同的字符 例如,对于“000”,我想找到: 0///0/00/LS///strong>000 000///0/00/LS////////// 0//0/00/LS///strong>000/// 0//strong>000//LS//////strong>000/ 0//strong>000//LS//00000000 但不是: 0//0000/LS//////////
- 0///0/00/LS///strong>000
- 000///0/00/LS//////////
- 0//0/00/LS///strong>000///
- 0//strong>000//LS//////strong>000/
- 0//strong>000//LS//00000000
- 0//0000/LS//////////
- 0///0000/LS//////////
- 0///00000/LS//////////
REGEXP '[^0]*[0{3}][^0]*'
非常感谢。如果您计划在MySQL中使用正则表达式,则不能使用lookarounds。因此,您可以将交替与否定字符类和锚定一起使用:
(^|[^0])0{3}([^0]|$)
见
说明:
-与字符串开头((^ |[^0])
)或^
以外的字符匹配的组0
-正好是3个零0{3}
-与([^0]|$)
以外的字符或字符串结尾(0
)匹配的组$
选择'mystr'REGEXP'[[::]]'