2017-08-28 16 views
0

の先頭にマッチするcp.searchをパターンマッチをコンパイル一致を与えないこれ、なぜ?:Pythonは、私はこれを持って、フラグをライン

>>> p = r'abc' 
>>> cp = re.compile(p, re.IGNORECASE) 
>>> m = cp.search('ABC', re.IGNORECASE) 
>>> m # NO MATCH # 1 

しかし、これは試合を与える、なぜ?

>>> m = cp.search(' ABC', re.IGNORECASE) # introduced spaces, ABC no longer at the beginning 
>>> m # MATCH # 2 
<_sre.SRE_Match object at 0x1082b5ac0> 

私がしなければならないすべてのことを#1にするには、何故re.IGNORECASEをドロップするのですか?

>>> m = cp.search('ABC') 
>>> m 
<_sre.SRE_Match object at 0x10827e308> 

答えて

1

(通訳で)あなたはcp.searchのヘルプを印刷した場合:

help(cp.search) 

あなたが表示されます。この関数は任意のフラグを取らないことを

Help on built-in function search: 
search(string=None, pos=0, endpos=9223372036854775807, *, pattern=None) method of _sre.SRE_Pattern instance 
    Scan through string looking for a match, and return a corresponding match object instance. 

    Return None if no position in the string matches. 

をお知らせあなたが実際にあなたのフラグを 'pos'引数に渡していたのは、予期しない結果をもたらしたからです。

+0

メソッドのヘルプで 'pos = 0、endpos = 9223372036854775807'をどうやって取得しましたか?私はそれを見ない。しかし、あなたが言ったことは全く意味をなさない。ありがとう – abc

+0

@abcいいえ、私たちはPythonのさまざまなバージョンを実行している可能性があります。 –

+0

'$ python --version Python 2.7.10' – abc

関連する問題