Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找“;要求;带括号和不带括号_Php_Regex_Vqmod - Fatal编程技术网

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;)]+)