否定匹配单个单词的正则表达式 return 没有匹配项
Negate regex matching a single word to return no matches
我需要否定这个正则表达式:
^sofia$
我该怎么做?
你需要一个负面的前瞻:
^(?!sofia$).*$
见demo
编辑:如果您只对 preg_match
的布尔结果感兴趣,您可以删除 .*$
。
此外,如果输入字符串包含换行符,则需要单行修饰符 /s
(或其内联变体 (?s)
)。例如
(?s)^(?!sofia$).*$
或
/^(?!sofia$).*$/s
您的 ^sofia$
匹配等于 sofia
的 string/line,因此您必须寻找一个正则表达式来匹配不等于 [=] 的任何 string/line 18=].
否定前瞻可用于限制通用模式。这里,.*
匹配除换行符之外的任何字符,0 次或更多次。前瞻检查 string/line.
的开头是否没有 sofia
我需要否定这个正则表达式:
^sofia$
我该怎么做?
你需要一个负面的前瞻:
^(?!sofia$).*$
见demo
编辑:如果您只对 preg_match
的布尔结果感兴趣,您可以删除 .*$
。
此外,如果输入字符串包含换行符,则需要单行修饰符 /s
(或其内联变体 (?s)
)。例如
(?s)^(?!sofia$).*$
或
/^(?!sofia$).*$/s
您的 ^sofia$
匹配等于 sofia
的 string/line,因此您必须寻找一个正则表达式来匹配不等于 [=] 的任何 string/line 18=].
否定前瞻可用于限制通用模式。这里,.*
匹配除换行符之外的任何字符,0 次或更多次。前瞻检查 string/line.
sofia