1

我正在尝试匹配脚本中的变量,例如这一行:

Hello World, this is a Test. $i = 1, $sString = "Test"

所以我想得到$i$sString

我尝试了许多不同的模式,例如$pattern = '/(\$\w+)/';. 我只得到$i两次,但没有得到$sString

正如你在这里看到的。

4

1 回答 1

1

你只能得到一场比赛$i。有两个结果的原因是括号捕获结果并且捕获也被返回(您可以使用它来返回子匹配,就像除了前导之外的所有内容$)。要获取所有匹配项,请使用preg_match_all. 如果您不需要括号,请删除它们(如果它们只是包装整个表达式,您将永远不需要它们):

preg_match_all('/[$]\w+/', $subject, $matches);

请注意,生成的数组更深一层,因此您会在$matches[0].

演示

于 2013-08-27T12:32:44.777 回答