2016-04-13 3 views
1

私はそれのよう正規表現と一致したときに、文字列の一部を暗記したいと思います: 正規表現にマッチしたときに文字列の一部を覚える方法は?

(perlで例えば私達はちょうど部分= $ 1と言っている)

for line in my file: 
    regex = re.compile(r'characters(textToSave)otherCharacters') 
    # here I would like to memorise what's in parenthesis like somehow 
    # portion = /1 (texToSave) 
    # so then I could do: 
    if regex.search(line): 
     #do something with portion 

誰かがアイデアをしてくださいがありますか?

+0

を参照してください。正規表現を文字列に対して実際に実行する必要があります。 –

答えて

0

Perlでもそうすることはできません。実際にを実行する必要があります変数を初期化する文字列に対する正規表現の検索を実行します。 Pythonで

、まず、re.searchと照合した後、あなたはマッチデータオブジェクトにアクセスすることができます:

import re 
line = "characterstextToSaveotherCharacters" 
regex = re.compile(r'characters(textToSave)otherCharacters') 
matchObj = regex.search(line) 
if matchObj: 
    print(matchObj.group(1)) # Now, matchObj.group(1) contains textToSave 

は、あなたも、Perlでそれを行うことはできませんPython demo

+0

説明ありがとうございました。私は2つの部分がある場合、私は括弧内に2つのtextToSaveを持つことはできませんか? –

+0

@ H.eyXD括弧をいくつでも使うことができます。 – rock321987

+0

可能です。グループを使用して両方にアクセスできます。[group for python 2.7](https://docs.python.org/2/library/re。 html#re.MatchObject.group)または[python 3のグループ](https://docs.python.org/3/library/re.html#re.match.group)をクリックします。 – Xiflado

関連する問題