類似の投稿をたくさん見つけましたが、どれも私の質問に答えていません。開始タグと終了タグを特定のキーワードに置き換え/削除/変更したいと思います。この場合、href="#" を含むすべてのタグを削除しようとしています...
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
このコードはありますが、テキストを残す方法がわかりません...
find: <a[^h]*href="#"[^>]*> (skip content) </a>
replace: (same content)
or
replace: <a href="somthing"> (same content) </a>
答え1
以下のタグをすべて削除しようとしていますhref="#"
メニュー「検索」>「置換」(またはCtrl+ H)
「検索対象」を
<a .*?href="#">(.*?)</a>
「置換」を次のように設定します
\1
「正規表現」を有効にする
「すべて置換」をクリック
前に:
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
後:
leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>
指摘したようにAFHコメントには、サンプル データに含まれていない表現をキャッチするより適切な正規表現があります。
「検索対象」を
<a .*?href="#" .*?>(.*?)</a>
これは句がある行と一致します後(
href="#"
および最初に一致する の前>
)。注記:
>
後続の節の値フィールド(>
一致する の前<a
)にがある場合、正しく動作しません。
参考文献
答え2
Davidさん、回答ありがとうございます。しかし、実際のコードでは<a .*?href="#">(.*?)</a>
ファイル内に属性が見つかりませんでした。他の設定やnotepad++のバージョンが原因の可能性があります。次のコードを使用する必要がありました。
Find: <a[^h]*href="#"[^>]*>(.*?)</a>
Replace: <a href="new_url">\1</a>