标签: php regex preg-match
我正在尝试将变量与脚本匹配,例如这一行:
Hello World, this is a Test. $i = 1, $sString = "Test"
所以我希望 $ i 和 $ sString 。
我尝试了许多不同的模式,例如$pattern = '/(\$\w+)/';。我只获得 $ i 两次但 $ sString 。
$pattern = '/(\$\w+)/';
正如您所见here。
答案 0 :(得分:1)
您只能获得一个匹配$i。有两个结果的原因是括号capture结果和捕获也被返回(您可以使用它来返回子匹配,比如除了前导$之外的所有内容)。要获得所有匹配项,请使用preg_match_all。如果你不需要它们,请删除括号(如果它们只包装整个表达式,你将永远不需要它们):
$i
$
preg_match_all
preg_match_all('/[$]\w+/', $subject, $matches);
请注意,生成的数组更深一层,因此您可以在$matches[0]中找到匹配数组。
$matches[0]
Demo