2012-04-12 3 views
0

Как заменитьRegex - заменить HTML-теги в двойные кавычки

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

Я хочу, чтобы заменить все опции тега, и мне нужно напечатать, как показано ниже

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

Не знакомы с узорами. help me

+6

разбора XML, и распечатать цитируемый текст – scibuff

+5

Теперь обязательную ссылку: http://stackoverflow.com/a/1732454/665800 – shanethehat

+1

Дополнительная обязательна ссылка: HTTP: //stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-reg –

ответ

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

0

Guess это должно работать ..

$output = preg_replace("~<option[^>]*?>([^<>]*?)</option[^>]*?>~","$1",trim($html)); 
Смежные вопросы