PHP正则表达式-匹配所有内容,但不完全匹配一个或多个单词

时间:2019-01-22 15:03:57

标签: php regex

我尝试找到不完全是一个或多个单词的任何字符串

我的模式

(?!(^ignoreme$)|(^ignoreme2$))

我正在寻找

ignoreme   - no
ignoreme2  - no
ignoremex  - match
ignorem    - match
gnoreme    - match
ignoreme22 - match

但是它返回很多空间。怎么做,谢谢。 https://regex101.com/r/u4EsNv/1

1 个答案:

答案 0 :(得分:6)

您可以使用此更正后的正则表达式:

^(?!ignoreme2?$).*$

Updated RegEx Demo

RegEx详细信息:

  • ^:开始
  • (?!ignoreme2?$):当我们提前ignoremeignoreme2直到结束时,否定性超前使比赛失败。
  • .*:再匹配0个任何字符
  • $:结束

请注意,正则表达式(?!(^ignoreme$)|(^ignoreme2$))与前2个无效情况匹配,因为您已将^包含在否定的超前表达式中,而不是在外部。这会导致正则表达式引擎在第一个字符后开始匹配以满足前瞻性断言。 (您可以在regex101中突出显示匹配项)