« 括弧4 正規表現(2) | Main | 括弧6 正規表現(4) »

2013.10.09

括弧5 正規表現(3)

<全角から半角へ 括弧自体の処理>

さて半角括弧を全角括弧にするのは片付きました。次は逆方向です。

全角括弧を半角括弧にするのは英文の中に紛れている全角括弧を修正するときです。しかし英文では括弧を開く前と、括弧を閉じた後に空白が入っています。従って修正するときには、括弧の置換それ自体と、空白の処理の2つを考えなければなりません。そのため手順は空白なしの和文を処理するときよりも少し複雑になります。

まず括弧の置換それ自体を考えます。これまでの処理により全角文字の間にある括弧はすべて全角括弧になりました。和文の中は綺麗になったということです。

しかし逆は真ならずで、全角括弧の前後がすべて全角文字であるとは限りません。半角文字、つまり英文の中に全角括弧が紛れている可能性があるのです。

そのような状況になっていたら、間に入っている全角括弧を半角括弧にする必要があり、検索と置換の出番になります。

まず始まりの括弧の処理をします。

人間の言葉で検索置換を表現すると
検索:(半角英数字記号空白)(全角括弧)
置換:(半角英数字記号空白)(半角括弧)
です。

これを正規表現にするなら
検索:([ -~])(
置換:\1(
ワイルドカードをオン
です。

検索の最後の(は全角括弧です。置換の(は半角です。

アルファベットの世界で実用的な検索をするには、英数字だけではなく?!"#$%&'@*.,:;などの記号、それに半角空白を含める必要があります。その正規表現が[ -~]です。

コード表の最初の方を見るとUnicode、ASCII、Shift-JISのどれでも英数字記号が並んでいます。その表の最初が半角空白です。そこから~までを[ -~]と書くことで検索対象に指定しているのです。

上記の検索置換を閉じる側の括弧でも繰り返します。これで英文テキストの中にある括弧自体はすべて半角になりました。

なお正規表現には様々な可能性、様々な表現の仕方があります。ここでご紹介しているのは一つの例に過ぎません。単純なものを除けば正規表現に唯一の正解はないのです。山頂に達する道は色々あるでしょう(それに山は富士山だけではないのですね)。

ある原文が様々な訳文になるように、正規表現でも色々な表現が可能です。これは正規表現も一種の言語(コンピューターの理解する言語)であることに起因しているのかもしれません。

|

« 括弧4 正規表現(2) | Main | 括弧6 正規表現(4) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/20048/58352998

Listed below are links to weblogs that reference 括弧5 正規表現(3) :

« 括弧4 正規表現(2) | Main | 括弧6 正規表現(4) »