ここから本文です

正規表現で特定の文字列以外を削除したい htmlで何千行もあって、 以下の定義...

kas********さん

2017/3/219:16:58

正規表現で特定の文字列以外を削除したい

htmlで何千行もあって、
以下の定義に当てはまる記述以外のみを残したい(それ以外を削除したい)場合には、

どういった正規表現の記述・方法を行えばよいでしょうか。

<a href="https://hogehoge.com/*/*/*/" target="_blank">
残したいaタグ
</a>

*のところは、文字数は問いません。

閲覧数:
73
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

cd6********さん

2017/3/221:35:22

HTML などの XML 系マークアップ言語の要素抽出には、
正規表現はあまり向きません。あえて書けば、
/<a\s+href\s*=\s*"https:\/\/hogehoge\.com[^"]+"\s+target\s*=\s*"_blank"\s*>.*?<\/a\s*>/igm
という感じかと。

一般的には、XPath を使います。
探したい要素は、
//a[contains(@href, 'https' + '://hogehoge.com/')][@target='_blank']
という感じなので、
libxml2 に付属してくる xmllint などを使って、
xmllint --xpath "上の表現" HTML_FILE
とします。

質問した人からのコメント

2017/3/7 13:11:44

ありがとうございます。こちらで試してみます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる