2015-07-20 50 views
-2

在我的项目中,我有意见,我将不得不处理(标记大小等)。在这些评论中,例如17.20或17:20显示时间和20',显示秒数。如何删除它们?Python删除带模式的字符串

>>> 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

使用[正则表达式](https://docs.python.org/2/library/re.html)? – dlask

+0

您先生,您需要在发布之前进行调查。 – cujo

+0

你能完整发布其中的一些评论吗?这将有助于了解情况。 –

回答

1

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

正则表达式是一个字符串,其中包含特殊字符,如*|,它用于'匹配'您的字符串以查看它是否符合特定模式。 (这就像使用'*'或'?'选择名称完全相似的文件组的更强大的版本。)您可以检索字符串的部分,这些部分对应于正则表达式中的括号内的组。

例如:

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

将返回比赛,因为该正则表达式指定任何与“日”结束,那么一个空间,然后是1个或2位数字(\d任何数字匹配),则:,然后是两个数字,然后是空格,然后是pa,然后是m。与括号中正则表达式部分匹配的字符串片段可以通过m.group()访问。

>>> m.group(1) 
'Monday' 
>>> m.group(2) 
'3:15' 
>>> m.group(3) 
'am' 

re库的完整文档是在https://docs.python.org/2/library/re.html这需要很长的时间成为一个正则表达式的专家,但也有很多资源,包括在线应用程序来测试您的正则针对不同的字符串,这将帮助你图为你的问题提供正确的正则表达式。

+0

我希望3:15把它分成'3':''15 '所以我可以稍后删除它 – william