2013-08-27 44 views
1

我想要的变量匹配了一个脚本,例如该行:RegExp(正的preg_match)变量

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

所以我希望得到$ I$ sString

我尝试了很多不同的模式,例如$pattern = '/(\$\w+)/';。我只获得$ i两次,但不是$ sString

正如你所见here

+1

使用'preg_match_all' – Bora

+0

并删除捕获括号。 –

回答

1

您只能得到一场比赛$i。有两个结果的原因是括号capture的结果和捕获返回以及(您可以使用此返回子匹配,除了前导$除外)。要获得所有匹配,请使用preg_match_all。并且删除括号,如果你不需要他们(你永远不会需要他们,如果他们只是包住整个表达式):

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

注意,结果数组是一个更深层次,所以你会发现您在$matches[0]中的匹配数组。

Demo