web-dev-qa-db-ja.com

特定のHtmlタグを削除/変更するNotePad ++

私は多くの同様の投稿を見つけましたが、それらのどれも私の質問に答えません。 openタグとcloseタグを特定のキーワードに置き換え/削除/変更したいのですが。この場合、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
Alfonso

_href="#"_を含むすべてのタグを削除しようとしています

  • メニュー「検索」>「置換」(または CtrlH

  • 「検索対象」を<a .*?href="#">(.*?)</a>に設定します

  • 「置換」を_\1_に設定します

  • 「正規表現」を有効にする

  • 「すべて置換」をクリックします

    Image

_<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>に設定します

    これは、句がある行に一致しますafter _href="#"_(および最初に一致する_>_の前)。

    注意:

    後続の句の値フィールドに_>_が存在する場合(_>_が一致する_<a_の前)、正しく機能しません。


参考文献

0
DavidPostill

答えてくれてありがとうDavid!しかし実際には、コード:<a .*?href="#">(.*?)</a>は私のファイルに属性を見つけられませんでした。他の構成またはnotepad ++のバージョンが異なることが原因である可能性があります。私はこのコードを使わなければなりませんでした:

 Find:    <a[^h]*href="#"[^>]*>(.*?)</a>
 Replace: <a href="new_url">\1</a>
0
Alfonso