<dt class="col2">
<p>Rs. 2691.00 </p>
</dt>
从上面的html代码,我需要使用正则表达式提取价格。我用beautifulSoup进行解析。html标签提取价格
任何人都可以为上述提出正则表达式吗?
<dt class="col2">
<p>Rs. 2691.00 </p>
</dt>
从上面的html代码,我需要使用正则表达式提取价格。我用beautifulSoup进行解析。html标签提取价格
任何人都可以为上述提出正则表达式吗?
如果你想获得“2691.00”,然后使用:
(?<=Rs\.)\s*(\d+\.\d{2})
大多数正则表达式引擎不能做*在回顾后,所以使它足够的动态,如果有更多的没有失败我把它留在主要组中的空间超过1个。您可以使用主要匹配并修剪掉多余的空间或使用捕获组1. 1
(?<=)
是一种积极的后视。这告诉正则表达式引擎,在主要匹配组之前,必须匹配那里面的任何东西,但不要将它包含在匹配中。
Rs\.
符合“Rs”。在正则表达式a。角色匹配任何东西,所以你必须转义它才能让它只匹配一段时间。
\s
可以匹配空格。
*
匹配0和无穷大。
\d
匹配数字。
+
匹配1和无穷大。与*类似,但必须找到至少1个才能成功匹配。
{2}
意味着它必须找到2之前的任何东西。所以\d{2}
与\d\d
相同。
而且我在围绕价格匹配创建组时使用括号。这使您可以从整个比赛中提取该组。如果要提取只是“美元”量或只是改变与这可以进一步用于:
((\d+)\.(\d{2}))
然后...我可能有这样的顺序错了...捕获组1将包含2691.00
,捕获组2将包含2691
,并且捕获组3将包含00
那么使用'beautifulSoup'有什么问题? –
只是为了让事情变得更加美好和闪亮干净 - 您是否试图从* HTML *中提取价格,或者,您是否试图从'Rs中提取价格。 2691.00'字符串,你从某个HTML解析器获得了文本数据?因为,你可能应该知道:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –