2011-10-17 3 views
5

HTML 문서에서 마지막으로 일치하는 문자열 (예 : foo)을 교체해야합니다. 문제는 HTML 문서의 구조가 항상 임의적이라는 것입니다.마지막 일치 문자열 만 preg_replace로 바꾸는 방법?

저는 preg_replace를 사용하여이를 수행하려고하지만, 지금까지는 첫 번째 경기 만 바꾸는 방법을 알고 있지만 마지막은 교체하지 않습니다.

감사합니다.

+1

예를 보여주십시오 또한 [HTML을 구문 분석하는 가장 좋은 방법]을 참조하시기 바랍니다 (http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/35 77662 # 3577662) – Gordon

+1

마지막 일치 항목을 바꾸는 방법을 알고 있다면 간단히 문자열을 뒤집어 교체하고 다시 반대로 할 수 있습니다.) –

답변

16

사용 부정적인 모습 후 (?!...)

$str = 'text abcd text text efgh'; 
echo preg_replace('~text(?!.*text)~', 'bar', $str),"\n"; 

출력 :

text abcd text bar efgh 
+0

패턴을 제공해 주셔서 감사합니다! –

0

<?php 

$str = 'Some random text'; 
$str_Pattern = '/[^ ]*$/'; 

preg_match($str_Pattern, $str, $results); 

print $results[0]; 

?> 
관련 문제