2

私は正規表現についてあまり知らないので、それらを学ぼうとしています。私は Python を使用re.compileしており、変数文字列で始まる任意の文字列に一致する正規表現を作成するために使用する必要があります。文字列は変数ですurl。現在、私は持っていますre.compile('%s*'%url)が、うまくいかないようです。私は何を間違っていますか?

4

2 に答える 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 に答える