我希望匹配包含至少一个强制字符和允许字符的整个字词。
例如
强制字符是:[t,a,x]
允许的字符是:[i,e]
t : passed (one of mandatories are here)
tea : passed (two of mandatories(t,a) and one allowed(e) here)
e : failed (none of mandatory is here)
teas : failed (two of mandatories(t,a) and one allowed(e) here but one intruder(s))
适当的REGEX代码是什么? 它将用于搜索12.000行的MySQL表,每行包含一个单词作为PHP项目。
答案 0 :(得分:6)
让我帮助你自己,而不是直截了当地回答。通过的单词由以下序列组成:
为这些中的每一个写正则表达式,然后将它们连接起来以获得整个事物的正则表达式。
答案 1 :(得分:0)
在perl中,它将是..
$string =~ /^[tax]*[ie]+$/i; #i is for ignore case
*是1或更多+是0或更多
我刚刚意识到你想让整个单词坚持让我重写它。
^和$将匹配行的开头和结尾。
答案 2 :(得分:0)
您可以使用此模式:
\b[ie]*+[taxie]++\b
说明:
由于[ie]*+
左侧有一个单词边界,并且占有量词,它会尽可能地抓住所有i
和e
并且永远不会回复它们,然后下一个字符必须是来自下一个班级的t
,a
或x
,其中+量词至少包含1个字符。
右边的单词边界不允许其他类型的字符。