php-regex在引号之间排除单词

php-regex在引号之间排除单词,php,regex,Php,Regex,我想将所有单词与\w匹配,并排除某些特定单词和数字。 但我想排除双引号和单引号之间的单词,类似这样的(?!“\w+”),但似乎不起作用 我该怎么办?这是我用的 /(?!return|if|floor|else|elseif|NULL|null|pow|function|\d+)\b(\w+)/ 您可以使用PCRE中断言的(*SKIP)(*F)来匹配和跳过某些子字符串,如下所示: /(['"])\w+\1(*SKIP)(*F)|\b(?!return|elseif|else|if|floor|N

我想将所有单词与
\w
匹配,并排除某些特定单词和数字。 但我想排除双引号和单引号之间的单词,类似这样的
(?!“\w+”)
,但似乎不起作用

我该怎么办?这是我用的

/(?!return|if|floor|else|elseif|NULL|null|pow|function|\d+)\b(\w+)/
您可以使用PCRE中断言的
(*SKIP)(*F)
来匹配和跳过某些子字符串,如下所示:

/(['"])\w+\1(*SKIP)(*F)|\b(?!return|elseif|else|if|floor|NULL|pow|function|\d+)\w+/i

  • (['”])
    匹配单引号或双引号,并将其捕获到组#1中
  • \w+
    匹配单个单词
  • \1
    返回第1组,以确保我们的收盘报价与第1组相同
  • (*SKIP)(*F)
    将跳过此匹配