我需要否定这个正则表达式:
^sofia$
我该怎么做?
您需要一个负面展望:
^(?!sofia$).*$
参见演示
编辑:如果您只是对preg_match
的布尔结果感兴趣,可以删除.*$
。
此外,如果输入字符串包含换行符,则需要使用单行修饰符/s
(或其内联变体(?s)
(。例如
(?s)^(?!sofia$).*$
或
/^(?!sofia$).*$/s
您的^sofia$
与等于sofia
的字符串/行匹配,因此您必须查找一个正则表达式,该正则表达式将与任何不等于sofia
的字符串/行将匹配。
否定外观可以用来限制通用模式。这里,.*
匹配除了换行符之外的任何字符,0次或更多次。先行检查字符串/行的开头是否没有sofia
。