【正規表現】HTMLソースの中から、特定のタグで囲まれている箇所を抽出(改行含む)
前提条件
・特定のタグの中に、更に特定のタグが入れ子になっていない。
例:
<a>~~~ <a>~~~ </a> <!--ここまでしか抽出出来ない--> </a>
上記の様な構造では、途中までしか抽出出来ない。
この様なケースを抽出したい場合は、別途コーディングした方が早そう・・・。
正規表現
※ここではAタグを想定
<[aA]\s[\s\S]*?(</[aA])
解説
・<[aA]\s →"<a " or "<A "で始まる。(\sはスペース) ・[\s\S] →半角スペース、タブ、改行、その他のどれか一文字。(つまり、なんでもあり) ・*?([aA]) →一番最初にヒットする"</a" or "</A"まで。
ちょっと応用
Aタグの中に、Aタグ以外のタグ要素が含まれているものを探す正規表現
<[aA]\s[\s\S&&[^<]]*?(<)(?!/[aA])[\s\S]*?(</[aA])
ポイント
・[\s\S&&[^<]] →半角スペース、タブ、改行、その他のどれか一文字。ただし、"<"は除く。 ・*?(<)(?!/[aA]) →最初にヒットする"<"が、Aタグの終了用のものではない。
参考にしたサイト
以上。
関連記事
記事はありませんでした