2014-04-28 95 views
1

我試圖匹配以下:匹配HTML元素或沒有

<h4><a href="#"></a> 
     Bartal, Association   </h4> 
     --> 
     <p>Travis House     
     <p><b>City</b> : 
     <em>Austin</em></p> 

注:那部分「<p>特拉維斯之家」有時在那裏,有時候不是。

我使用正則表達式如下:

~<!--.+?<h4>(.+?)<\/h4>.+?(?:<p>(.+))?.+?<p><b>City<\/b>.+?<em>(.+?)<\/em>~is 

它工作正常,但它並沒有在部分「<p>特拉維斯樓」相匹配。

任何人都可以協助嗎?

+0

現在已經修好了,先生。 –

回答

2

這工作:

~--\s+<h4>(.+?)<\/h4>.+?(?:<p>(.+?)\n)?\s+<p><b>City<\/b>.+?<em>(.+?)<\/em>~is 

看樣子,如果有或全無聲明:

(?:<p>(.+))? 

沒有工作,因爲它是由兩個ungreedy點承滴盤包圍。