이전 PHP 소스를 탐색 중이 었는데 이해할 수없는 패턴을 발견했습니다 (인터넷에서 복사/과거를 몇 번이나 ...). . 여기 정규식에서 물음표를 추가하면 무엇이 변경됩니까? +
는 PHP와 함께 사용하여 간단한 exemple입니다 : '?'echo preg_replace('#color="(.+)"#', '$1', 'color="red" color="black"');
// Echo 'red" color="black', which is fine because the (.+) try to match the largest possible string.
echo preg_replace('#color="(.+?)"#', '$1', 'color="red" color="black"');
// Echo 'red black', why ? There is some black magic behind '(.+?)' I don't understand !
그래서 무엇을한다 '(. +?)'할까요? 나는 그것이 '정규 표현식의 나머지 부분과 일치하지 않는다'고 가정하지만 자세한 설명을 찾고 있습니다! ?
'? '''후에 정규 표현식 엔진이 가능한 가장 짧은 매치 (강요 적이 지 않거나 꺼리는)를하도록합니다. –
그것은 마지 못해 한정어입니다. '. +'와 일치하는 가장 작은 시퀀스를 찾습니다. 더 많은 정보 : http://stackoverflow.com/questions/5319840/greedy-vs-reluctant-vs-possessive-quantifiers – Aserre
[참고 -이 정규식은 무엇을 의미합니까?] (http://stackoverflow.com/questions)/22937618/reference-what-does-this-regex-mean) –