2016-08-20 19 views
0

テキストには空白が含まれていないため、文字列のリストにインデックスを使用することはできません。私が探していますPython regexは、前の部分文字列の一致後に部分文字列を取得します。

パターンは次のとおりです。

check=

それは数およびエンコードされたクエリ文字列の項目(Apacheのログファイル)に続いて二回ファイルのすべての行になっています。私は例えばcheck=

次のものだけを私に与え出力をしたい、行の文字列は次のようになります。

11.249.222.103 - - [15/Aug/2016:13:17:56 -0600] "GET /next2/120005079807?check=37593467%2CCOB&check=37593378%2CUAP&box=match&submit=Next HTTP/1.1" 500 1633 "https://mvt.squaretwofinancial.com/newmed/?button=All&submit=Submit" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0" 

そして、私はこのケースで3759346737593378をフェッチする必要があります。

+1

're.findall(R '(<=チェック! =)\ d + '、text) '? –

答えて

2

このコードを確認してください。

import re 

text = '''11.249.222.103 - - [15/Aug/2016:13:17:56 -0600] "GET /next2/120005079807?check=37593467%2CCOB&check=37593378%2CUAP&box=match&submit=Next HTTP/1.1" 500 1633 "https://mvt.squaretwofinancial.com/newmed/?button=All&submit=Submit" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"''' 


for match in re.findall("check=(\d+)",text): 
    print 'Found "%s"' % match 

出力:ヘルプのURLの

C:\Users\dinesh_pundkar\Desktop>python demo.py 
Found "37593467" 
Found "37593378" 

カップル:

+0

ok、変更するには、後でテキストを検索するにはどうすればよいですか。 '%2CCOB'か'%2CUAP'を見つけたかどうかに基づいて数字を表示するにはどうすればよいでしょうか? – tadamhicks

+1

、私はそれを得た。 – tadamhicks

関連する問題