2016-05-10 5 views
1

私は、私はPythonの新機能です。私はテキストを持っていて、^sの次の値はになりますので、例えばがあり、その値は100です。これは私がこれまで試したものです:Python - regexを使ってテキストを見つけるには?

#!/usr/bin/python 

import re 

text="^request^ #13#10#13#10^s100^GET http://facebook.com #13#10Host: http://facebook.com #13#10X-Online-Host: http://facebook.com #13#10X-Forward-Host: http://facebook.com #13#10Connection: Keep-Alive#13#10#13#10" 
if re.split(r'\^s',text): 
    print "found it" 

問題は、それは常に私がre.split(r'\^bla',text)に正規表現と基本的に任意のテキストを変更した場合でもfound itを返すということです、それは常にfound itはそれを修正するために私を助けてください返されます。

答えて

0

あなたが次のことを試して、できるだけ多くのコードを必要としません:

import re 
text = "^request^ #13#10#13#10^s100^GET http://facebook.com #13#10Host: http://facebook.com #13#10X-Online-Host: http://facebook.com #13#10X-Forward-Host: http://facebook.com #13#10Connection: Keep-Alive#13#10#13#10" 
match = re.search(r"\^s(\d+)\^", text) 
if match: 
    print match.group(1) 

正規表現の説明:

\^s(\d+)\^ 

Match the character “^” literally «\^» 
Match the character “s” literally (case sensitive) «s» 
Match the regex below and capture its match into backreference number 1 «(\d+)» 
    Match a single character that is a “digit” (ASCII 0–9 only) «\d+» 
     Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+» 
Match the character “^” literally «\^» 

Ideone Demo

+0

他のメンバーが私の後に来て、受け入れられた。あなた自身のようなベテランのユーザーがそれを起こすとは通常思っていません。非常に残念です... – alfasin

+0

https://en.wikipedia.org/wiki/Paranoia - > "**妄想思考には一般的に迫害が含まれています... **" –

+0

投稿したのは数分後に投稿したという事実です鉱山。そしてそれは同じ答えであるという事実でもあります。パラノイアはどこで式に来ますか? – alfasin

1

あなたはおそらくしたいことはre.searchです:

import re 

text="^request^ #13#10#13#10^s100^GET http://facebook.com #13#10Host: http://facebook.com #13#10X-Online-Host: http://facebook.com #13#10X-Forward-Host: http://facebook.com #13#10Connection: Keep-Alive#13#10#13#10" 
m = re.search(r'\^s(.*)\^',text) 
print m.group(1) # 100 
+0

「グループ」とはどういう意味ですか? – hillz

+0

@hillz正規表現をやっているときに大括弧 '...(...)... 'をつけると、大括弧内の用語にマッチするものは「マッチしたグループ」とみなされます。複数の試合があるかもしれませんが、あなたの場合は最初の試合が必要です。これは私たちが 'm.group(1)'と呼ぶ理由です。 – alfasin

関連する問題