- ベストアンサー
タグの中のname, value値の取得
ある文字列中に次のほぼ同値なinputタグ、 1:<input type="text" name="A" value="B"> 2:<input type='text' name='A' value='B'> 3:<input type=text name=A value=B> がある場合、この中からtext, A, B を抽出しようと思っています. (さらに、1,2のA, B に半角スペースが含まれる場合も考慮) 自分なりの方法の概略は、 $_ = $str; ~ /(<input[^>]*?>)/; $tag = $1; として、<input・・・>を得て、 $tag =~ /name=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $name = $1; $tag =~ /value=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i $value = $1; としていたのですが、nameとvalue値が\sを含む場合や、<input>タグの中の"と"の間に > が含まれる場合に正しく動作しません。 何いい方法はないでしょうか.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
お礼
パーサを使うといいのですね。 先ほど、cgi-lib.plの中身を眺めながら 正規表現で解決しようと四苦八苦していました.. 実を言うと使っているのはPHPなので、XML Parser 関数あたりを 利用すればいいのでしょうか。 いろいろ調べてみます. ありがとうございました。