我正在尝试解析包含全局变量的项目文件,其中一些变量有多个全局变量。
示例:
global $ID, $NR, $USER;
global $NR;
我只会在它们之间找到$NR
变量。
我的RegEx:
global[?\w+($NR)+\s+?]
这找到了很多全局变量,但不是$ NR。怎么了?
答案 0 :(得分:2)
您可以使用
^\s*global\s*\$\w+(?:,\s*\$\w+)*;$
此RegEx将捕获所有全局变量,而不管多个变量声明或单个变量。
RegEx说明:
^
:行的开头\s*
:零个或多个空格global
:匹配确切的字符串 global \$
:匹配$
符号。由于$
在RegEx中具有不同的含义,因此需要通过使用反斜杠进行转义才能完全匹配。\w+
:匹配一个或多个字母数字和_
个字符。 \w
= [a-zA-Z0-9_]
(?:,\s*\$\w+)*
(?:...)
:非捕获群组,
:匹配,
符号\s*
:匹配零个或多个空格字符(...)*
:将该组匹配零次或多次。;
:匹配;
符号$
:行尾添加RegEx铁路图以便更好地理解。
注意:如果分号后有空格,请在分号后\s*
之前添加$
。