0

たとえば、コロンの間が欲しいのですが、前のコンテンツにコロンが入っていて混乱する可能性があるため、最後から一致させる必要があります。

コロンを使用するもの:

コロンを使用する他の何か:

:IWantWhatIsInHere:

なにか

なにか

4

2 に答える 2

5

という名前の文字列があると仮定すると、次のように動作するはずですtext

import re
data = re.search(r'.*:([^:]*):', text, re.DOTALL).group(1)

.*正規表現の先頭にある貪欲さにより:、「ファイルの最後から」の要件を満たすために、一致が可能な限り最後に開始されることが保証されます。改行文字にも一致するように、re.DOTALLフラグがあります。.*

正規表現の:([^:]*):部分は、実際に「IWantWhatIsInHere」に一致する場所であり、「「[^:]*ではない任意の数の文字に一致する」ことを意味:し、括弧は一致をキャプチャ グループに保存します。

group(1)最初のキャプチャ グループの内容を取得するために呼び出す一致が見つかったら、これが必要なデータになります。

于 2013-05-30T00:02:31.523 に答える
0

これは機能します:

>>> tgt='''\
... something that uses a colon:
... 
... something else that uses a colon:
... 
... :IWantWhatIsInHere:
... 
... something
... 
... something'''
>>> re.search(r':([^:]*):[^:]*$',tgt,re.DOTALL).group(1)
'IWantWhatIsInHere'

行末アンカーで動作します

于 2013-05-30T00:34:07.543 に答える