1

.htmlファイルを読み取ってタグを検索し、ページに表示される文字列にタグを<input>挿入する次の関数があります。<input type='hidden'>ただし、その条件が満たされることはありません:(たとえば、ifステートメントは実行されません。) 私の正規表現の何が問題なのですか?

 def print_choose( params, name ):

   filename = path + name
   f = open( filename, 'r' )
   records = f.readlines()
   print "Content-Type: text/html"
   print
   page = ""
   flag = True
   for record in records:
        if re.match( '<input*', str(record) ) != None:
            print record
            page += record
            page += "<input type='hidden' name='pagename' value='psychology' />"
        else:
            page += record

   print page

ありがとうございました

4

2 に答える 2

5

re.match文字列の最初の文字から始まります。re.search文字列の途中でパターンに一致する可能性がある を本当に必要としませんか?

于 2012-10-24T23:03:10.810 に答える
3
   if re.match( '<input*', str(record) ) != None:

あなたはおそらくしたいです<input.*。現時点では、 に一致しますが、 には一致し<inputtttttttttません<input>blahblah。は.任意の文字を示し、* は 0 または正規表現の最後の項目に一致することを示すため、.*0 以上の文字で繰り返しワイルドカード一致を要求します。

(PSは正規表現のデバッグのためにregexpalをチェックアウトします)

于 2012-10-24T22:59:48.540 に答える