2014-04-28 59 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点承滴盘包围。