2011-10-17 18 views
5

मुझे HTML दस्तावेज़ में स्ट्रिंग के अंतिम मिलान (उदाहरण के लिए शब्द foo) को प्रतिस्थापित करना है। समस्या यह है कि एचटीएमएल दस्तावेज़ की संरचना हमेशा यादृच्छिक है।preg_replace के साथ केवल स्ट्रिंग के अंतिम मिलान को कैसे प्रतिस्थापित करें?

मैं preg_replace के साथ इसे पूरा करने की कोशिश कर रहा हूं, लेकिन अब तक मुझे पता है कि केवल पहले मैच को कैसे बदला जाए, लेकिन अंतिम नहीं।

धन्यवाद।

+1

कृपया एक उदाहरण दिखाने के लिए और भी कृपया देखें [एचटीएमएल पार्स करने के लिए सर्वोत्तम तरीकों] (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]; 

?>