2011-01-20 26 views
6

Ben preg_replace yapıyorum:php regex veya | Operatör

$pattern = '/<ul>/'; 
$replacement = ""; 
$string = "hello <ul> how are you doing </ul>"; 
echo preg_replace($pattern, $replacement, $string); 

benim <ul>"" ile yerini alacak ama en iyisi biraz <ul> veya </ul>, olsa | (veya) karakterini nasıl kullanılacağını almıyorum olan şey değiştirmek ister .

böyle deneyin, ama doğru çalışmıyor:

$pattern = '/<ul>|</ul>/'; 
$replacement = ""; 
$string = "hello <ul> how are you doing </ul>"; 
echo preg_replace($pattern, $replacement, $string); 

mutlaka

Teşekkür, Bryan mutluluk duyacağız Herhangi bir yardım

You eğik çizgi kaçış gerekebilir
+3

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

cevap

13

/Bunun gibi ul:

$pattern = '/<ul>|<\/ul>/'; 

veya bunu yapın, emin değilseniz bu ödeme şekli:

$pattern = '/<\/?ul>/'; 

('?' sıfır veya '/' bu durumda olan önceki karakterlerin biri anlamına gelir.)

+1

Çok teşekkürler, $ desen = '/ <\/?ul>/'; –

+5

mükemmel çalıştı Başka bir seçenek, farklı bir regex sınırlayıcı kullanmaktır: ''~ ~'' –

+1

<\/?ul> iyi bir tanesidir ve sonunda uğraştığım bir normal ifade çözdüm. Bahşiş için teşekkürler! – Yohn

1

Sen ters eğik çizgi kaçmak zorunda.

/<ul>|<\/ul>/