编写正则表达式以从html捕获子字符串

时间:2015-02-28 06:56:42

标签: regex ruby-on-rails-4

我必须使用正则表达式

从html文本中找到特定模式

例如:

我的字符串是

<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td><p align="justify"><u>Counsel appeared</u></p><p align="justify"><a name="COUNSEL" id="COUNSEL"></a>K. P. Garg CA<b>for the Appellant</b>.: A. K. Monga, Sr. DR <b>for theRespondent</b></p><p align="justify"><b><u><a name="JUDGE" id="JUDGE"></a>R. P.TOLANI, JM.</u></b></p><p align="justify">testing</p>..........and so on 

我想从html文本中删除<p align="justify"><u>Counsel appeared</u></p><p align="justify"><a name="COUNSEL" id="COUNSEL"></a>K. P. Garg CA<b>for the Appellant</b>.: A. K. Monga, Sr. DR <b>for theRespondent</b></p>这部分内容。 html标签中包含的文本是动态的。

为此,我写了以下正则表达式

gsub(/<p align="justify"><u>counsel appeared<\/u><\/p><p align="justify"><a name="counsel" id="counsel"><\/a>.*<b>.*<\/b><\/p>/i, '')

但它从“顾问”中删除了整个文本&lt; / u&gt;&lt; / p&gt;直到结束。

那么我如何从上面的html字符串中删除特定部分? 任何人都可以帮我修改我的正则表达式吗?

1 个答案:

答案 0 :(得分:0)

尝试以下模式:

<p\s+?align\s*?=\s*?"justify">\s*?<u>\s*?counsel appeared\s*?<\/u>\s*?<\/p>\s*?<p\s+?align\s*?=\s*?"justify">\s*?<a\s+?name\s*?=\s*?"counsel"\s+?id\s*?=\s*?"counsel">\s*?<\/a>.*?<b>.*?<\/b>\s*?<\/p>