2011-03-09 3 views
0
def ExtractViewState(string): 
    m = re.match("__viewstate[^>]+value=\"\(\?<Value>[^\"]*\)", string, re.IGNORECASE) 
    return m.group(0) 

私は何かが欠けていると思いますが、mは何も返されません。 Blagh。なぜこのPythonの正規表現が私のviewstate情報を返さないのですか?

UPDATE:

<input type="hidden" name="__VIEWSTATE" value="5vzj+3s4pEHFJUQoOJbZicZdf+k2bi0uiXeIxMNTxjocu0FLzTXEI8pEcQy/V4r1vtIP6G/E0/j0C5TwvhaWdW1wJVGwGKfO26gvQk9O0zsxy5NBpx+PlfL5h7nlnAp+GmAIwdjLWxRFFbhxaOfH+yZQKfkzshBvE7xogxrTnrrlF22BiENHdWHuMqeGYb4AUfvbbJ2psQOwTTOF6meAjszLtaAxBVTgun4gVsGOKUDqasgzyYn7AsxsJ4rJ3S/64YU2sUwAsvCD1d0X3Q8bGiwriRU/pAo31xn4SfhP8dk22QbhFbVpvIwl3WGTxohL" /> 

だけのvalue属性での間のテキストを返す必要があります:

「5vzj + 3s4pEHFJUQoOJbZicZdf + k2bi0uiXeIxMNTxjocu0FLzTXEI8pEcQy/V4r1vtIP6G/E0/j0C5TwvhaWdW1wJVGwGKfO26gvQk9O0zsxy5NBpx + PlfL5h7nlnAp + GmAIwdjLWxRFFbhxaOfH + yZQKfkzshBvE7xogxrTnrrlF22BiENHdWHuMqeGYb4AUfvbbJ2psQOwTTOF6meAjszLtaAxBVTgun4gVsGOKUDqasgzyYn7AsxsJ4rJ3S/64YU2sUwAsvCD1d0X3Q8bGiwriRU/pAo31xn4SfhP8dk22QbhFbVpvIwl3WGTxohL "

+0

を。例がなければ、答えることは不可能です。 –

+1

HTMLに正規表現を使用しないでください! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – user470379

+0

"string"の値が期待どおりであることをデバッグしましたか?これは入力タグですか? –

答えて

0

3つの問題があります。

  1. あなたはre.search、ないre.match必要です。

  2. (?P<...>)が必要です。(?<...>)は必要ありません。

  3. 必要以上のバックスラッシュがあります。私の作品

    re.search("__viewstate[^>]+value=\"(?P<Value>[^\"]*)", s, re.IGNORECASE)

+0

'[^>] +'は魅力的ではありません "value =" ...? – user470379

+0

ありがとうございました。それは動作します! – itwb

+0

@ user470379:それは貪欲なグループが他のマッチを食べることができる、つまりre.findall( "a。+ a"、 "aba aca") 'が* 2つではなく1つの*マッチを持つ場合にのみ問題です。ここで、 '[^>]は、タグでマッチを終了する必要があるため、これを防止します。 –

2

あなたはいくつかの問題があります:あなたが一致したい文字列を追加することはでき

import re 
def ExtractViewState(string): 
    # re.match looks only at the **beginning** of the string 
    # dont escape the `(..)` those capture the group 
    m = re.search("__viewstate[^>]+value=\"([^\"]*)", string, re.IGNORECASE) 
    # group(0) is the whole match, you want the 1st capture group 
    return m.group(1) 
+0

ありがとうございました。それも動作します! – itwb

関連する問題