我对正则表达式了解不多,正在努力学习它们。我正在使用 Python 并且需要使用re.compile
来创建一个匹配任何以变量字符串开头的字符串的正则表达式。字符串是可变的url
。目前我有re.compile('%s*'%url)
,但它似乎不起作用。我究竟做错了什么?
问问题
1589 次
2 回答
4
使用re.escape(url)
:
In [15]: import re
In [16]: url = 'http://stackoverflow.com'
In [17]: pat = re.compile(re.escape(url))
In [18]: pat.match('http://stackoverflow.com')
Out[18]: <_sre.SRE_Match object at 0x8fd4c28>
In [19]: pat.match('http://foo.com') is None
Out [19]: True
于 2013-01-02T04:38:02.770 回答
0
虽然正则表达式适用于这种情况,但为什么不使用str. 开始()?使您的事情变得更简单,并且已经内置在 python 中,用于此类情况。它还压缩了必须使用您的代码完成的所有操作,例如编译、匹配等。因此,您的代码可以如下所示,而不是正则表达式:
url = "http://example.com/"
string = "http://example.com is a great site! Everyone check it out!"
if string.startswith(url):
print 'The string starts with url!'
else:
print "The string doesn't start with url. Very unfortunate."
于 2013-01-02T04:40:56.400 回答