Python使用模式删除字符串

时间:2015-07-20 13:14:11

标签: python python-2.7

在我的项目中,我有评论,我将不得不处理(tokenize spem等)。在那些评论中,我有例如17.20或17:20显示时间和20'显示秒数。如何删除它们?

>>> m = re.search('([0-9]+\\.[0-9]+)+','Παρήγγειλα 21.29 και ήρθε 22.17')
>>> m.group(0)
  '21.29'
>>> m.group(1)
  '21.29'
>>> m.group(2)
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  IndexError: no such group

我使用reg并且我有上面的代码和输出...如何同时拥有(21.29和22.17)? 我想从评论中删除它们。

1 个答案:

答案 0 :(得分:1)

您应该使用正则表达式和Python正则表达式库re。正则表达式非常有用,几乎在所有现代语言中都有实现,并且有很多关于它们的信息,包括许多教程和解释。

正则表达式是一个字符串,其中包含*|等特殊字符,用于匹配&#39;你的字符串,看它是否符合某种模式。 (它就像是使用&#39; *&#39;或&#39;?&#39;来选择名称相似的文件组的更强大的版本。)您可以检索部分字符串,对应于正则表达式中括号内的组。

例如:

m = re.match("(.*day) (\d{1,2}:\d\d) (a|p)m", "Monday 3:15 am")

将返回匹配项,因为正则表达式指定以&#39; day&#39;结尾的任何内容,然后是空格,然后是1位或2位数(\d匹配任何数字),然后{{1}然后是两个数字,然后是一个空格,然后是:p,然后是a。可以使用m访问与括号中正则表达式部分匹配的字符串片段。

m.group()

>>> m.group(1) 'Monday' >>> m.group(2) '3:15' >>> m.group(3) 'am' 库的完整文档位于https://docs.python.org/2/library/re.html成为正则表达式专家需要很长时间,但是有很多资源,包括用于针对不同字符串测试正则表达式的在线应用程序,将帮助您找出问题的正确正则表达式。