两组正则表达式单词匹配

时间:2019-07-24 06:14:01

标签: php regex

我的要求是,我想匹配两组单词中一个句子中的单词,说该句子中至少应包含第1组中的一个单词,也应包含第2组中的至少一个单词。

表情-(足球|曲棍球|板球)和(罗纳尔多|梅西|科赫利|约旦)

句子可以是- Ronaldo is the highest paid player in Football.

为此可能的正则表达式是什么,语言是php。

我尝试过

(?=.*\b(cat|dog|rat)\b)(?=.*\b(blue|black|red)\b).*$可行,但区分大小写。

2 个答案:

答案 0 :(得分:1)

使用以下内容:

.*\b(?:ronaldo|messi|kohli|jordan)\b.*\b(?:football|hockey|cricket)\b.* /i

请注意使用/i标志来区分大小写。

https://gist.github.com/gnh1201/e372f5de2e076dbee205a07eb4064d8d

答案 1 :(得分:0)

尝试使用2个正则表达式,每组一个,然后检查2个匹配项:

例如:

Forst正则表达式:/(Football)|(Hockey)|(Cricket)/i

第二个正则表达式:/(Ronaldo)|(Messi)|(Kohli)|(Jordan)/i

Demo for the First Regex

Demo for the Second Regex