包含一个或多个指定字母的字符串的Javascript正则表达式

时间:2019-01-03 13:38:14

标签: javascript sql regex

我正在使用以下正则表达式在字符串的任何位置的英文单词数组中搜索包含字母C,A,L,I,R,E,T,N的所有字符串:

const regex = /\b(?=\w*C)(?=\w*A)(?=\w*L)(?=\w*I)(?=\w*R)(?=\w*E)(?=\w*T)(?=\w*N)\w+/ig;

这是我的JavaScript(https://jsfiddle.net/jarosciak/7tk4aL0h/),它在搜索英语单词数组时演示了上述示例: 该脚本将成功找到以下单词:

CLARINET

这对我来说是一个很好的开始,但是我确实需要Regex表达式来查找包含我指定的大部分字母的所有单词(字符串):

例如,如果我指定字母:X,C,L,A,R,I,N,E,T。 即使我也将X指定为要搜索的字母之一,它也应该找到单词:CLARINET。

我可以在SQL中做到这一点而没有任何问题,但是我不知道如何在REGEX中做到这一点。如果有帮助,下面是一个有效的SQL示例:

enter image description here

1 个答案:

答案 0 :(得分:1)

以下正则表达式将仅顺序查找Carinet。您的问题没有提到CLARINET是按顺序出现还是按CLRIATEN这样的任何顺序出现。但是根据您的数据和我的假设,即顺序进行,就到这里了。您可以通过添加/ i区分大小写来更改正则表达式。

正则表达式:'(CLARINET)+'

如果您认为单词可以像包含所有这些单词的随机数据一样出现在文本中的任何位置,则可以使用以下命令。

正则表达式:'[CLARINET]+'