我正在重新措辞我的问题,以清除混乱!
我希望匹配如果一个字符串有特定的字母,我使用字符类:
[ACD]
Run Code Online (Sandbox Code Playgroud)
它完美无缺!
但如果字符串有两次或多次重复或两个单独的字母,我想匹配
例如:
[AKL]应匹配:
ABCVL
AAGHF
KKUI
AKL
Run Code Online (Sandbox Code Playgroud)
但上述内容不应与以下内容相符:
ABCD
KHID
LOVE
Run Code Online (Sandbox Code Playgroud)
因为那些只有一次!
这就是我试图使用的原因:
[ACD]{2,}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,可能它不是正确的正则表达式..正如一个正则表达式大师可以帮我解决这个难题吗?
谢谢
PS:我会在MYSQL上使用它 - 一种不同的方法也欢迎!但我喜欢使用正则表达式来实现更智能和更短的查询!
要确保字符串在一组字母中包含至少两个出现的位置( A K L例如,如示例所示),您可以编写如下内容:
[AKL].*[AKL]
Run Code Online (Sandbox Code Playgroud)
由于MySQL正则表达式引擎是一个DFA,因此不需要使用否定的字符类[^AKL]来代替点来避免回溯,或者根本不需要使用延迟量词.
例:
SELECT 'KKUI' REGEXP '[AKL].*[AKL]';
Run Code Online (Sandbox Code Playgroud)
将返回 1
您可以按照此链接说明LIKE的特定主题和MySQL中的REGEXP功能.