次の例で使用している正規表現(\p{Ll}|\p{Lu})+|\p{IsHiragana}+|\p{IsKatakana}+|\p{IsCJKUnifiedIdeographs}+
は、アルファベット・ひらがな・カタカナ・漢字が連続する箇所にマッチします。 この正規表現は、小文字または大文字の連続((\p{Ll}|\p{Lu})+
)、ひらがなの連続(\p{IsHiragana}+
)、カタカナの連続(\p{IsKatakana}+
)、漢字の連続(\p{IsCJKUnifiedIdeographs}+
)のいずれかにマッチします。
正規表現を使って文字列を同じ種類の文字ごとに区切って表示する
using System;
using System.Text.RegularExpressions;
class Sample {
static void Main()
{
var text = "Regexにマッチした箇所を一つのグループとしてキャプチャする";
var pattern = @"(\p{Ll}|\p{Lu})+|\p{IsHiragana}+|\p{IsKatakana}+|\p{IsCJKUnifiedIdeographs}+";
foreach (Match m in Regex.Matches(text, pattern)) {
Console.WriteLine(m.Value);
}
}
}
実行結果
Regex に マッチ した 箇所 を 一 つの グループ として キャプチャ する