python正则表达式匹配任何有效的英语句子

时间:2012-05-25 11:01:26

标签: python regex text-manipulation

我想知道是否可以编写一个python正则表达式来匹配任何有效的英文句子,该句子可以包含字母数字和特殊字符。
基本上,我想从XML文件中提取一些特定元素。这些特定元素将具有以下形式:

<p o=<Any Number>> <Any English sentence> </p>  

例如:

<p o ="1"> The quick brown fox jumps over the lazy dog </p>

<p o ="2">  And This is a number 12.90! </p>

我们可以轻松地为

编写正则表达式
<p o=<Any Number>>

</p>标记。但我有兴趣通过编写正则表达式组来提取这些标签之间的句子。

有人可以建议使用正则表达式解决上述问题吗?

另外,如果您可以建议一种解决方法,那么对我来说也会非常有帮助。

2 个答案:

答案 0 :(得分:8)

使用像lxml这样的XML解析器,regex不适合此任务。 示例:

import lxml.etree
// First we parse the xml
doc = lxml.etree.fromstring('<p o ="2">  And This is a number 12.90! </p>')
// Then we use xpath to extract the element we need
doc.xpath('/p/text()')

您可以在Xpath tutorial了解有关XPATH的更多信息。

答案 1 :(得分:1)

你应该真的使用xml解析器。示例http://www.travisglines.com/web-coding/python-xml-parser-tutorial