19

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

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

/advancedbrain|com_ixxocart|p\=completed/

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

这里是单词

  1. 先进的大脑
  2. com_ixxocart
  3. p=完成
4

3 回答 3

21

使用前瞻断言

^(?=.*advancebrain)(?=.*com_ixxochart)(?=.*p=completed)

如果所有三个术语都存在,则将匹配。

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

^(?=.*\badvancebrain\b)(?=.*\bcom_ixxochart\b)(?=.*\bp=completed\b)
于 2011-03-24T15:58:25.913 回答
4
^(?=.*?p=completed)(?=.*?advancebrain)(?=.*?com_ixxocart).*$

花了太长时间的测试和改进=/哦,好吧..仍然会发布我的答案

于 2011-03-24T16:18:58.737 回答
1

使用前瞻:

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

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

于 2011-03-24T16:02:13.963 回答