「禿頭帽子屋の独語妄言 side A」の「# 翻訳者のための正規表現~勉強会の解説、その3」になぞって、お題その4をワードの正規表現を使って表現してみたいと思います。
お題その4:
・数字の全角半角、それに続く丸カッコの全角半角が混在しているとき、
ぜんぶ一括して「半角数字 + 半スペ + 半角丸カッコ(この中は任意) + 半スペ」に置換する
今回は、かなり難題です。前回のお題の経験を生かして1行で記述してみました。但し、「半角数字」への置換は現状のワードの正規表現では実現できません。(但し、WildLight等を使って複数行の正規表現を実行すれば可能ですが)
【検索】
([0-90-9]{1,})[ ¥((]{1,2}(*)[¥))]
【置換】
¥1 (¥2)
【説明】
([0-90-9]{1,}) で、半角か全角の1桁以上の数字の羅列…にヒットします。それを¥1へ代入。
[△¥((]{1,2} で、半角スペース、もしくは半角か全角の丸括弧開く…にヒット。ヒットする組合せとして「△」「(」「(」「△△」「△(」「△(」「((」「((」「(△」「((」「((」「(△」になります。欲しいのは青文字にした4つです。それ以外の組合せが不幸にもあると同様にヒットする事になります。
半角括弧を検索文字とする際には、¥を前に付ける必要があります。
* で、任意の文字列。
[¥))] で、半角か全角の丸括弧閉じる…にヒット。
[¥((]{1,2}(*)[¥))] で、丸括弧に囲まれた任意の文字列を¥2へ代入。
- ¥1△(¥2)△
置換句には、半角括弧の前後に半角スペースが入っています。
〜〜〜番外編〜〜〜
全角数字を半角に変換し、上記の正規表現を実行する WildLight の辞書を付けておきます(笑)
- WLDIC_正規表現お題4.txt (右クリックしてダウンロードして下さい)
やっている事は、全角数字1文字毎を半角へ置き換えて、最後に上記お題の正規表現文字列を実行するようになっています。