2013-08-27 3 views
1

에 대한 (는 preg_match), 예를 들어,이 라인 : 정규식 내가 스크립트에서 변수를 일치하기 위해 노력하고있어 변수

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

그래서 내가 $ 내가$ sString을 싶어.

나는 많은 다른 패턴을 시도했다. $pattern = '/(\$\w+)/';. $ i 만 두 번이나 $ sString이 아닌 두 번받습니다.

당신이 볼 수 있듯이 here.

+1

사용은' – Bora

+0

을 preg_match_all' 괄호를 캡처 제거합니다. –

답변

1

당신은 하나의 일치 항목 $i을 얻을 수 있습니다. 두 가지 결과가 나오는 이유는 괄호 capture이 결과이며 캡처가 반환되기 때문입니다 (이 부분을 사용하면 앞에있는 $을 제외한 모든 부분과 같은 부분을 반환 할 수 있습니다). 모든 경기를 얻으려면 preg_match_all을 사용하십시오. 그리고 당신이 그들을 필요하지 않은 경우 괄호를 제거 (그리고 그들은 단지 전체 표현을 포장하는 경우는 필요하지 않을 것이다) :

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

주 결과 배열이 한 단계 더 깊은 것을 당신이 찾을 수 있도록, 너의 배열의 $matches[0]에 일치합니다.

Demo

관련 문제