正規表現で改行を含む複数行でマッチングさせたい 
2015/12/18 Fri.
正規表現の「.(ピリオド)」のことを「任意の一文字」と思っていたのですが、正しくは「改行を除く任意の一文字」だったんですね。
改行があるとうまくマッチングしないなあと悩んでいたのですが、謎が解けました。
改行も含む任意の一文字の場合、「\s\S」とすればOK。
\s:空白文字(半角スペース、\t、\n、\r、\f)すべて
\S:空白文字(半角スペース、\t、\n、\r、\f)以外すべて
たとえば、
開始[\s\S]*?終了
とすれば、改行を含む複数行の文字列の、「開始」から最初に見つかる「終了」までの文字列にヒットします。
改行があるとうまくマッチングしないなあと悩んでいたのですが、謎が解けました。
改行も含む任意の一文字の場合、「\s\S」とすればOK。
\s:空白文字(半角スペース、\t、\n、\r、\f)すべて
\S:空白文字(半角スペース、\t、\n、\r、\f)以外すべて
たとえば、
開始[\s\S]*?終了
とすれば、改行を含む複数行の文字列の、「開始」から最初に見つかる「終了」までの文字列にヒットします。
- 関連記事
category: 他開発関連
この記事へのコメント
すごく助かりました(*^^*)VBAで正規表現を扱っていたのですが、無事に取得することができました。ありがとうございます!
HT さん
2017/01/31 12:46
(●´ω`●)ゞエヘヘ照れますなあ
鳥頭
2017/02/01 10:30
コメントの投稿
コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。
内容によっては表示されない場合がありますことご了承願います。