Php 查找“;要求;带括号和不带括号
到目前为止,我有:Php 查找“;要求;带括号和不带括号,php,regex,vqmod,Php,Regex,Vqmod,到目前为止,我有: (require|include)(_once)?\(([^)]+) 它会检查所有require、require_once、include和include_once,但要求格式为: require(FOO) 我还需要找到: require FOO 因此,它需要考虑带括号和不带括号以及第二个示例中的空间 完整代码的样式为: <search position="replace" regex="true"><![CDATA[~(require|include
(require|include)(_once)?\(([^)]+)
它会检查所有require、require_once、include和include_once,但要求格式为:
require(FOO)
我还需要找到:
require FOO
因此,它需要考虑带括号和不带括号以及第二个示例中的空间
完整代码的样式为:
<search position="replace" regex="true"><![CDATA[~(require|include)(_once)?\(([^)]+)~]]></search>
<add><![CDATA[$1$2(VQMod::modCheck($3)]]></add>
您可以使用分支重置:
(?|…|…)
分支重置功能的主要优点是内部的捕获组具有相同的编号
根据George Reith的评论,您必须为非括号大小写找到好的字符类。在这里,如果遇到空格或分号,我选择停止
另一种方式:(我不在乎是否有括号)
另一种方式:(If-Then-else)
(对于最后一种方法,请注意文件名在组4中)正则表达式中的括号是保留字符,因此需要将它们转义到
\(
和\)
<代码>(require | include)(| once)?\([^\)]+\)我知道我需要转义来检查它们,但我需要执行某种if语句…如果它有括号或它不需要测试分号。。。以下要求\u每年一次;需要一次b代码>匹配需要\u一次;需要一次_
(require|include)(_once)?(?|\(([^)]+)\)| ([^\s;]+))
(require|include)(_once)?[( ]([^\s;)]+)
(require|include)(_once)?(\()?(?(3)| )([^\s;)]+)