2013-08-27 51 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