正则表达式查找所有“?”不带“ <?”,“?>”

时间:2019-06-28 13:23:57

标签: php regex

在更改PHP项目文件的编码后,我正在恢复UTF-8字符。我正在尝试查找所有需要使用正则表达式更改的文件。正则表达式的工作方式应为:

  1. 查找包含?的任何单词
  2. 但排除<??>php?

我曾经尝试过自己构造正则表达式,但是我真的不知道如何强制正则表达式查找以前不包含带有特定单词的匹配项的“内容”。我该如何实现?

编辑:

由于对此几乎没有疑问-为什么要排除“ php”?就我而言,它始终是GET网址的开头,例如example.php?id = 10

1 个答案:

答案 0 :(得分:1)

查看此正则表达式是否有效:

(?<!\bphp)(?<!<)\?(?!>)

Demo

说明:

使用2个否定的回溯:

  1. \bphp
  2. <

>

的1个否定指标