PHP preg_匹配除Word之外的任何字符

2022-03-29 00:00:00 regex php preg-match

要匹配除指定字符之外的任何字符(在本例中为"f"),我使用[^f]+

但是如何匹配除指定单词之外的任何字符呢?类似于[^word]+

示例:

haystack:"bla1 bla2 bla3 bla4 hello bla5 bla6 bla7"(haystack包含HTML和换行符)

针:"bla1 bla2 bla3 bla4 "

所以我想从开始到"hello"

捕获所有内容

解决方案

链接的可能重复项是关于匹配不包含指定单词的行。我不确定是不是,这里问的是什么。

如果要匹配字符串中的所有内容,但不匹配指定的单词,则必须使用锚点word boundary,而不是^ start of a string and $ end of a string。

例如

(?:(?!your).)+

匹配除"您的"一词以外的所有内容

查看here on Regexr

(?!your)如果字符串"your"不在当前位置之后,则negative lookahead assertion为真。

相关文章