0

PHP で HTML タグ属性の文字列を解析しようとしています。次の 3 つのケースが考えられます。

attribute="value"  //inside the quotes there can be everything also other escaped quotes
attribute          //without the value
attribute=value    //without quotes so there are only alphanumeric characters

最初に属性名と一致し、2番目に属性値(存在する場合)を取得できる正規表現を見つけるのを誰かが手伝ってくれますか?

4

2 に答える 2

9

html の処理に正規表現を使用しないでください。特に、ライブラリを作成していて、入力がどのように表示されるかわからない場合はなおさらです。たとえば、 simplexmlを見てください。

于 2009-09-04T15:58:47.310 に答える
2

これを試して、タグから抽出したいものかどうかを確認してください。

preg_match_all('/( \\w{1,}="\\w{1,}"| \\w{1,}=\\w{1,}| \\w{1,})/i', 
    $content, 
    $result, 
    PREG_PATTERN_ORDER);
$result = $result[0];

正規表現は各属性を取得し、タグ名を除外して、結果を配列に入れるので、最初と 2 番目の属性をループできます。

于 2009-09-04T16:09:28.680 に答える