如何匹配正则表达式中的多个单词

时间:2011-03-24 15:56:00

标签: php javascript regex programming-languages lookahead

只是一个简单的正则表达式,我不知道如何写。

正则表达式必须确保字符串匹配所有3个单词。我知道如何使它匹配 3的任何

/advancedbrain|com_ixxocart|p\=completed/

但我需要确保字符串中存在所有 3个单词。

以下是单词

  1. advancebrain
  2. com_ixxocart
  3. P =完成

3 个答案:

答案 0 :(得分:16)

使用lookahead assertions

^(?=.*advancebrain)(?=.*com_ixxochart)(?=.*p=completed)
如果所有三个术语都存在,

将匹配。

您可能希望在搜索字词周围添加\b工作边界,以确保它们匹配为完整字词,而不是其他字词的子字符串(如advancebraindeath),如果您需要避免这种情况:< / p>

^(?=.*\badvancebrain\b)(?=.*\bcom_ixxochart\b)(?=.*\bp=completed\b)

答案 1 :(得分:4)

^(?=.*?p=completed)(?=.*?advancebrain)(?=.*?com_ixxocart).*$

花了太长的时间进行测试和精炼= /哦好..还是会发表我的回答

答案 2 :(得分:1)

使用前瞻:

(?=.*\badvancebrain)(?=.*\bcom_ixxocart)(?=.*\bp=completed)

订单无关紧要。这三个都是必需的。