VB2008で正規表現で、以下のようなHTMLコメントから、コメントに挟まれた文字を抽出したいと考えています。
<!--COMMENT_START>
あいうえおかきくけこ
<!--COMMENT_END>
(この例では、"あいうえおかきくけこ"という文字を抽出したいのです。)
正規表現のパターンは、
<!--COMMENT_START>\s*(.*)\s*<!--COMMENT_END>
でいいと思うのですが、、"あいうえおかきくけこ"という文字(上記のかっこで囲んだ部分)を抽出するには
どうすればよいのでしょうか?
また、上記パターンが検索するテキストに複数あり、それをすべて取得する(例えば配列に格納する)には
どうすればよいのでしょうか?
ご教示の程、よろしくお願いいたします。
HTMLのコメントが間違っているようですが,それは本論と関係ないので……。
# <!--から始まって-->で終わるのがHTMLのコメント。
> (上記のかっこで囲んだ部分)を抽出するには
> どうすればよいのでしょうか?
正規表現のキャプチャは,mがRegex.Matchの結果としたときに,
m.Groups(<group>).Captures(<index>)
で得られます。
今回の場合は,グループ1にキャプチャが一つだけですから,
m.Groups(1)
で得られたGroupのValueが対象となる文字列になります。
> 上記パターンが検索するテキストに複数あり、それをすべて取得する(例えば配列に格納する)には
> どうすればよいのでしょうか?
a.) Regex.Matchのあと,Match.NextMatchで順次調べて,List(Of String)に追加していく
b.) Regex.Matchesで一気に取得して,For Eachで一つずつList(Of String)に追加していく
c.) Regex.Matchesで一気に取得して,LINQで配列化する
あたりでしょうか。