使用Positive Lookbehind的RegEx表达式

时间:2015-08-20 23:10:34

标签: regex

我正在尝试开发一个正则表达式来从这个字符串中提取地址,销售日期和销售价格信息:

<strong id="address">1245 DUPONT ST</strong><br>Toronto : Metro Toronto<br>14 Aug 2015&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$71,000,000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#CC0000"></font>

理想情况下,我希望收到格式化为五行的信息,如下所示:

1245 DUPONT ST  
Toronto  
Metro Toronto  
14 Aug 2015  
$71,000,000  

我怀疑该解决方案将涉及positive lookbehind的使用,因为地址信息始终可以由id="address"标识,但我似乎无法使其正常工作。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

我不同意使用正则表达式来解析xml,而是使用html解析器。

但是,对于您的具体示例,我可以提出适用于PCRE引擎的正则表达式:

id="address">(.*?)<|<br>(.*?) : (.*?)<br>|(?<=<br>)(.*?)&|(\$[^&]+)

<强> Working demo

匹配信息:

MATCH 1
1.  [21-35] `1245 DUPONT ST`
MATCH 2
2.  [48-55] `Toronto`
3.  [58-71] `Metro Toronto`
MATCH 3
4.  [75-86] `14 Aug 2015`
MATCH 4
5.  [122-133]   `$71,000,000`