2012-04-12 53 views
0

如何更換正則表達式 - 替換HTML標記雙引號

<option value="X" >XXX</option> 
<option value="Y" >YYY</option> 
<option value="ZZ" >ZZZ</option> 

我想要替換所有選項標籤,我需要打印像下面

"XXX" "YYY" "ZZZ" .... 

不熟悉的模式。幫我

+6

解析XML,並打印引用文本 – scibuff 2012-04-12 10:25:56

+5

現在強制性鏈接:http://stackoverflow.com/a/1732454/665800 – shanethehat 2012-04-12 10:27:24

+1

其他強制性的鏈接:http: //stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-reg – 2012-04-12 10:29:53

回答

1

如果你知道輸入將會有百達此格式,你當然可以用正則表達式做。例如。

<?php 
$pattern = '/<\/?option[^>]*>\n?/'; 
$replacement = '"'; 
$subject = '<option value="X" >XXX</option> 
<option value="Y" >YYY</option> 
<option value="ZZ" >ZZZ</option>'; 
$limit = -1; 
$count = 0; 
$result = preg_replace ($pattern, $replacement, $subject, $limit, $count); 
?> 

打印$結果將輸出

"XXX""YYY""ZZZ" 

,如果你想額外的空間,你可以運行另一個取代,並與" "替換所有""

給所有潛在的downvoters。不要爲此而教條主義。在很多情況下,正則表達式可以完成所需的任務,而且它們更容易實現。

+0

它適用於我。謝謝 – Gowri 2012-04-21 10:19:13

0

想這應該工作..

$output = preg_replace("~<option[^>]*?>([^<>]*?)</option[^>]*?>~","$1",trim($html));