Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式-匹配所有内容,但不完全匹配一个或多个单词_Php_Regex - Fatal编程技术网

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

PHP正则表达式-匹配所有内容,但不完全匹配一个或多个单词,php,regex,Php,Regex,我试图找到任何字符串,而不是一个或多个单词 我的模式 (?!(^ignoreme$)|(^ignoreme2$)) 我在找 ignoreme - no ignoreme2 - no ignoremex - match ignorem - match gnoreme - match ignoreme22 - match 但是它返回了很多空间。如何做到这一点,谢谢。 您可以使用此已更正的正则表达式: ^(?!ignoreme2?$).*$ 正则表达式详细信息: ^:开始

我试图找到任何字符串,而不是一个或多个单词

我的模式

(?!(^ignoreme$)|(^ignoreme2$))
我在找

ignoreme   - no
ignoreme2  - no
ignoremex  - match
ignorem    - match
gnoreme    - match
ignoreme22 - match
但是它返回了很多空间。如何做到这一点,谢谢。

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

^(?!ignoreme2?$).*$

正则表达式详细信息:

  • ^
    :开始
  • (?!ignoreme2?$)
    :当我们有
    ignoreme
    ignoreme2
    提前到结束时,负前瞻将使匹配失败
  • *
    :再匹配0个字符
  • $
    :结束


请注意,正则表达式
(?!(^ignoreme$)|(^ignoreme2$)
匹配前两个无效案例,因为您已将
^
包含在非外部的负前瞻表达式中。这会导致正则表达式引擎在第一个字符之后开始匹配,以满足前瞻断言。(您可以在regex101突出显示的匹配中看到)

它看起来很酷,但它不是分离,b/c我可以添加许多单词,如
ignoreme2,ignoreme,top,abc
确保您可以交替添加它们,例如
^(?(ignoreme2?| top | abc | foo | bar)$).$