wordで正規表現《その2》

前提として、《その1》で書いたように、算用数字を見つけ、文字種をすべて「全角」にしてあるという前提から話を始めています。

[0-9]

この意味は、全角数字の「0」から「9」のうちの1文字にマッチするパターンと言う指定になります。
数字の「0」「9」は全角数字です。間にあるのは半角の「-」ハイフンです。これで、「0」から「9」までのいずれかがあればマッチするという書き方になります。

1234567
234567890

12
123

「,」を除いてすべての数字が選ばれています。

[0-9]{2}

この意味は、全角数字の「0」から「9」のうちの2文字が続くパターンにマッチする指定になります。
(数字の「0」「9」は全角数字です)

123456
1,234,567,89

12
12

2文字が連続する全角数字のパターンを見つけています。1文字の全角数字や末尾が奇数番目の全角数字はマッチしません。

[0-9]{2,}

{2,}」2の後ろに「,」を付けると、意味が変わります。全角数字が2文字以上続くパターンにマッチすることになります。

1234567
1,234567890

12
123

仮に2文字以上4文字以下のパターンとマッチさせるなら「{2,4}」とすればいいのですが、これだと実質的には1文字以外であればマッチしてしまうことになります。

ここで問題になるのは「,234,567,890」の先頭の全角1文字がパターンとマッチしていませんので、黄色部分を半角数字にすると、ここだけ全角数字が残ってしまうことになります。

[0-9,]{2,}

1234567
1,234,567
,890

12
123

[0-9,] と言う記述は全角の「0」から全角の「9」までのいずれかと「,」全角のカンマのいずれかがあればマッチするという記述になります。

半角の「,」が残されていますのが、半角カンマは問題がないのでこれで目的を達成できることになります。

上記の例では数字が1文字だと全角で、2文字以上連続する場合は半角にすることができます。

まとめ

正規表現がワードに組み込まれているのを知りませんでした。というか、そこまでマイクロソフトを信頼していませんでした。

あいまい検索」のチェックを外すことが必要ですので、逆を言えば、「あいまい検索」は何をしているのかを知る必要がありますが、いずれ、それを調べてみますが、チェックが入っていると「オプション」がクリックできるので、それらを「あいまい」と言っているわけです。

正規表現」は「ワイルドカード」が意味しているとことかと言うと微妙に違うと思いますが、いずれ詳細に検討してみます。

いえることは、正規の「正規表現」では文字種の置換などはスクリプトを書かなければならないところをワードでは一括で「文字種」として置換がかかるのは便利な機能であると言えます。