以前から、正規表現の基本の説明に絡めて、スペース (正確には空白文字) の検出をしてきましたが、実務でベースとして使用する場合に適切と思われる正規表現を次に示します (折り返されていますが 1 行の表現です)。
(\p{IsCJKUnifiedIdeographs}|\p{IsHiragana}|\p{IsKatakana}|\p{IsCJKSymbolsandPunctuation})\s+(\p{IsCJKUnifiedIdeographs}|\p{IsHiragana}|\p{IsKatakana}|\p{IsCJKSymbolsandPunctuation})
はい、これで漢字、ひらがな、カタカナ、句読点の間の不要なスペースをすべて検出できます。IsBasicLatin が含まれていないのは、もちろん英数文字間や英数字と和文の空白を許容するためです。.NET 系以外のソフトウェァでは、[ぁーん] や文字コードに置き換える必要があります。
カタカナ間のスペースを許容する場合 (ダイアログ ボックスなど) は、上記から IsKatakana を取り去り、Terminology Verifier などの英和ペア方式の検出に任せます。カタカナの部分が少しなら、検出されるままにして自分の目で確認するのもよいでしょう。
そろそろ書くことがなくなってきました。正規表現エンジンがいくつかあるので混乱しやすいのですが、覚えることは結構少なくて、あとは応用です。
とりあえず、今までの記事をまとめたページを近々作成しようと考えています。次回以降の記事は未定です。何か思いついたら書いてみたいと思います。「これを検出したい」というコメントをいただけたら、できるだけ回答していきたいと思います。
(・∀・)シゴトクレ♪ ヒマダ♪シャンティ♪*・゜゚・*:.。. .。.:*・゜゚・*
2 件のコメント:
最後の一行、ものすごく共感w
妙なところに深く共感w
コメントを投稿