0

html タグ間の名前を取得する必要があります。

<div class="from"><span class="profile fn">firstnamed familyname</span></div>

これまでのところ、同じ質問を持つ他の人々の例に従って試しました:

preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)

しかし、うまくいきません。

正しい方法は何ですか?

どうもありがとう。

4

3 に答える 3

1
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)

...これをトリガーする必要があります:

解析エラー: 構文エラー、予期しない '<'

それとは別に:

  • 元のテキストにない閉じられていない属性を探します。

    class="profile fnclass="profile fn"

  • ゼロまたは 1 文字を検索します。

    .?

固定正規表現は次のようになります。

$text = '<div class="from"><span class="profile fn">firstnamed familyname</span></div>';
preg_match(';from"><span class="profile fn">(.*)</span></div>;', $text, $match);
var_dump($match);

もちろん、これはおそらく大きな HTML 文書では機能しなくなるでしょう (</span></div>後で別の文書があるとすぐに)。HTML の解析に使用する場合、正規表現を正しく使用することは不可能です。

于 2013-02-06T15:49:11.477 に答える
0

これ:

preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)

は構文的に正しくないため、二重引用符をエスケープする必要があります。

preg_match(";from\"><span class=\"profile fn>(.?)</span></div>;", $text, $match)
于 2013-02-06T15:41:47.347 に答える
0

特殊文字 (引用符など) をエスケープする必要があります。

preg_match(";from\"><span class\=\"profile fn>(.?)</span></div>;", $text, $match)
于 2013-02-06T15:43:20.740 に答える