« 括弧6 正規表現(4) | Main | なぜ変わらないのか »

2013.10.13

括弧7 正規表現(5)

<全角から半角へ 空白の検索置換>

さて
(1) 半角括弧開の前には、半角空白が1つある
という表記の原則をこれから適用するのですが、前に空白がないという状態は、
・全角文字がある
・半角空白以外の英数字記号があるか
ということです。

このうち前者の全角文字については処理済み(括弧の方を全角に修正)です。従って後者の「半角空白以外の英数字記号」という正規表現を作ります(特殊な制御記号はこの際考慮しません)。

「半角空白以外の英数字記号」は文字コードの!から~までのいずれかの英数字記号です。

検索:([\!-~])\("
置換:\1 ("
ワイルドカードをオン

「半角空白以外の英数字記号」は置換後もそのまま使いますので、検索側で半角括弧の中に入れておきます。その次の\(は、半角括弧をメタ文字ではなく単なるとして認識させるため\をつけてあります。

置換側では英数字記号と半角括弧の間に半角空白が入っています(これがこの処理の眼目)。なお半角括弧は正規表現ではなくそのままとしてあります。


次に
(2) 半角括弧閉の後には、普通は半角空白が1つある
という表記の原則を適用します。もし半角空白がなければ、それを1つ付加するのですが、後に空白がないという状態は(1)の括弧開くのときと同じで
・全角文字がある
・半角空白以外の英数字記号がある
ということです。

従って全角文字は処理済み(括弧の方を全角に修正)で半角空白以外の英数字記号呑み考慮すればいいというのも(1)と同じです。

しかしこちらは括弧のすぐ後にピリオドやカンマが付くことがありますので、検索対象は「半角空白とピリオドカンマ以外の英数字記号」になります。

検索:\)([\!-+\-/-~])
置換:) \1
ワイルドカードをオン

検索式の[\!-+\-/-~]は「ピリオドとカンマを除外した英数字記号」を表現するためのもので、文字コード表の!から+まで、文字としての-、/から~までを順番に拾っているだけです。正規表現には「以外」を意味する!を使うことも可能でしょうが、こちらの方が考えとしては単純です。

置換側では半角括弧と英数字記号の間に半角空白が入っています。


|

« 括弧6 正規表現(4) | Main | なぜ変わらないのか »

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/58378809

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

« 括弧6 正規表現(4) | Main | なぜ変わらないのか »