我一直在寻找答案,但我真的找不到它,谢谢你的答案!
我正在查看一个充满随机文字的html文档,并且我正在寻找特定日期格式的内容:
%% / %% / %%或%% - %% - %%
两个问题: 1 - 是否可以在指定%s的类型(本例中为两位数)时执行类似str.find(%s /%s /%s)的操作?
2 - 是否可以在执行.find时将%s分配给变量?因为像str.find(%s /%s /%s)%(d,m,y)这样的东西会出错。
竖起大拇指以获得有关python代码的提示! 谢谢!
答案 0 :(得分:1)
是的,这很有可能。在这种情况下,Regular expressions将成为你最好的朋友。
对于您提供的示例,您正在寻找类似" xx / xx / xx"这样每个' x'是一个数字,以下正则表达式将完成工作:\d\d[/]\d\d[/]\d\d
。
以下是它在Python中的工作原理:
import re
pattern = re.compile('\d\d[/]\d\d[/]\d\d')
pattern.findall(' sadfsd 04/06/76 kjadsf 10/10/14 ')
在Python解释器中尝试一下,然后您将获得匹配的子字符串列表:
['04/06/76', '10/10/14']
如果要单独提取日,月和年,请使用括号对正则表达式的那些部分进行分组。像这样:
import re
pattern = re.compile('(\d\d)[/](\d\d)[/](\d\d)')
pattern.findall(' sadfsd 04/06/76 kjadsf 10/10/14 ')
这会给你一个元组列表:
[('04', '06', '76'), ('10', '10', '14')]