我想选择所有单词,如
baaac
czzzd
dkcvvvvz
它们都有字母,如a,z和v等任何字母,在序列中重复两次以上
REGEX可以吗? 这是我如何查询我的表三次重复的字母a,我想稍微概括一下,以便我不必查询每个字母
select word FROM `allwords` WHERE word REGEXP '^.*aaa.*$'
答案 0 :(得分:2)
看起来Mysql可能支持反向引用,这意味着您可以执行以下操作:
WHERE word REGEXP '([a-z])\1{2,}'
但是你必须在你的Mysql上测试它才能确定。
如果您不能使用反向引用但仍想使用正则表达式,那么您可以执行以下操作:
WHERE word REGEXP '(aaa|bbb|ccc|ddd|eee|fff|ggg|hhh|iii|jjj|kkk|lll|mmm|nnn|ooo|ppp|qqq|rrr|sss|ttt|uuu|vvv|www|xxx|yyy|zzz)'
答案 1 :(得分:0)
我放弃并跑了
delete FROM `allwords` WHERE word REGEXP '^.*aaa.*$';
delete FROM `allwords` WHERE word REGEXP '^.*bbb.*$';
delete FROM `allwords` WHERE word REGEXP '^.*ccc.*$';
...
delete FROM `allwords` WHERE word REGEXP '^.*zzz.*$';
这是一个悲伤的一天
答案 2 :(得分:0)
试试这个:
SELECT * FROM mytable WHERE mycolumn REGEXP "^[a-z]*(([a-z]){2}){2,}[a-z]*$";
答案 3 :(得分:0)
要查找字符串是否包含多于2个重复的字母数字,请使用此
/([a-zA-Z0-9])\1{2,}/.test(str) // it returns true if contains and false if not