在我的项目中,我有评论,我将不得不处理(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)? 我想从评论中删除它们。
答案 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成为正则表达式专家需要很长时间,但是有很多资源,包括用于针对不同字符串测试正则表达式的在线应用程序,将帮助您找出问题的正确正则表达式。