2014-11-24 42 views
0

我一直在寻找答案,但我真的找不到它,谢谢你的任何可能的答案!蟒蛇找到字符串中的特定变量

我会通过一个HTML文档完全随机的文字,和我在一个特定的日期格式寻找的东西:

%%/%%/%%或%% - %% - % %

两个问题: 1 - 是否可以在指定%s(在这种情况下是两位数)的同时做类似str.find(%s /%s /%s)的事情?

2-可以在执行.find时将%s分配给变量吗?因为像str.find(%s /%s /%s)%(d,m,y)这样的内容会导致错误。

竖起大拇指提示python代码来实现这个! 谢谢!

回答

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')] 
+0

感谢您的超快速回复!我想我会深入研究他们。它是否涵盖第二个问题? – 2014-11-24 23:28:56

+0

我不明白第二个问题。你是否试图单独获取这些值?换句话说,将日期子字符串分配给'd',依此类推? – 2014-11-24 23:32:19

+0

是的,我的坏,它呈现得不好,但你已经回答了我的2dn问题与你更快的答案。非常感谢你! – 2014-11-24 23:38:20