我对正则表达式了解不多,我正在努力学习它们。我正在使用Python并且需要使用re.compile
来创建一个匹配任何以变量字符串开头的字符串的正则表达式。该字符串是变量url
。目前我有re.compile('%s*'%url)
,但它似乎不起作用。我做错了什么?
答案 0 :(得分: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
答案 1 :(得分:0)
虽然正则表达式适用于这种情况,为什么不使用str.startswith()?让你的事情更简单,并且已经内置了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."