0

リンク検索がタグ間でこぼれるのを防ぐ方法は?

さまざまなクラスのハイパーリンクがページに含まれているローカルWebサイトがあり、検索結果が複数のタグにまたがるのを防ぐ方法を知りたいです。(特定のリンクタイプのアドレスを一括変更する必要があります。)

たとえば、私のページには次のようなリンクのリストが含まれている場合があります

Best solution:<br>
<a href="aaa.html" class="xxx">AAA</a><br> but see also
<a href="bbb.html" class="yyy">BBB</a><br> and
<a href="ccc.html" class="zzz">CCC</a><br>.

正規表現の検索用語を使用して、クラス「zzz」のリンクのみをサイトで検索しようとすると、

<a href="+[].html" class="zzz">

私の結果には、次のような長い文字列が含まれます

<a href="aaa.html" class="xxx">AAA</a><br> but see also <a href="bbb.html" class="yyy">BBB</a><br> and <a href="ccc.html" class="zzz>

何が起こったのかというと、検索エンジン(Funduc Search&Replace、これが役立つ場合)は<a href=、最初のリンク(aaa.html)、3番目のリンク(ccc.html)の一致するクラスを見つけ、その間のすべてを含みます。

正しいクラスのファイルのリンクのみが検索結果に表示されるようにするには、どの式を使用する必要がありますか?

例えば、

<a href="ccc.html" class="zzz>

ご協力いただきありがとうございます。

4

2 に答える 2

0

正規表現の代わりにDOMライブラリ(できればXPathをサポートするライブラリ)を使用してください。正規表現は、HTMLの処理にはあまり適していません。

于 2012-08-14T08:45:24.277 に答える
0

+1つ以上のオカレンスの修飾子は、ほとんどの正規表現エンジンで一致することを熱望しています。つまり、[a-z]+「aまたはbまたは...またはzをできるだけ多く一致させる」という意味です。

Perl正規表現エンジンには、+?レイジーマッチ用の特別な修飾子があるため、 [a-z]+?「a..zをできるだけ少なくマッチさせる」という意味です。

簡単に言うと、「任意の文字」から"、を除外して一致させることができます。>

[^">]+

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

<a href="([^">]+.html)" class="zzz">

より正確なperlバージョン:

<a\s+.*?\bhref\s*=\s*"(.+?\.html)"\s*class\s*=\s*"zzz".*?>

()キャプチャグループについてはこちら。

私は試していません、それがFunduc Search and Replace for Windowsうまくいくことを願っています。

于 2012-08-14T08:52:55.270 に答える