2017-01-19 3 views
2

다음은 입력을 일치시키는 데 사용되는 예제입니다. 그러나 그것은 전혀 일치하지 않을 것이다. 그러나 내가이 정규식을 http://www.phpliveregex.com/에 추가하면 결과를 반환한다. 나는 내가 뭘 잘못했는지 모른다. 나에게 문제를 지적 해주십시오일치 할 수 없습니다. PHP에서 preg_match보다 큰 기호

$input_lines = "$this->Lang['TEST']";  
preg_match_all("/\$this->Lang\[\'(.*?)\'\]/", $input_lines, $output_array); 

예상 결과 :

문자 이중 인용 된 문자열 내부의 $ 기호는 this으로 다음과 PHP는 알려진 변수에 보간을 시도한다
array(2 
    0 => array(1 
      0 => $this->Lang['TEST'] 
    ), 
    1 => array(1 
      0 => TEST 
    ) 
) 
+0

내 대답을 확인하시기 바랍니다 그리고 당신을 위해 작동하는 경우, 동의하시기 바랍니다 참조하십시오. –

답변

2

- 선언되지 않았습니다 . 하나의 정규 표현식으로 문자열 보간을 방지하기 위해 문자 그대로 인용합니다 :

$input_lines = "\$this->Lang['TEST']";  
preg_match_all('/\$this->Lang\[\'(.*?)\'\]/', $input_lines, $output_array); 
print_r($output_array); 

PHP demo

+0

@shyammtp이 답변은 맞는 것 같습니다. 초록색 진드기를 수여하거나 그다지 좋지 않은 내용을 설명하는 의견을 남겨주세요. – mickmackusa