Python正则表达式匹配任何以字符串开头的字符串

时间:2013-01-02 04:32:24

标签: python regex

我对正则表达式了解不多,我正在努力学习它们。我正在使用Python并且需要使用re.compile来创建一个匹配任何以变量字符串开头的字符串的正则表达式。该字符串是变量url。目前我有re.compile('%s*'%url),但它似乎不起作用。我做错了什么?

2 个答案:

答案 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."