# 翻訳者のための正規表現~基本その4
おとそ気分で、基本第4回いってみまーす。
前回までの基本でかなり検索できる範囲は広がりました。ここらで、「メタキャラクタ」、「エスケープ文字」、「エスケープシーケンス」という概念を覚えましょう。
今までの基本で、正規表現には以下の文字を使いました。
ピリオド(.)
アスタリスク(*)
プラス(+)
クエスチョンマーク(?)
大カッコ [ ]
丸カッコ ( )
ハイフン(-)
カレット(^)
縦棒(|)
言い換えれば、これらは正規表現の中で一定の機能をもつ特殊文字であり、メタ文字、メタキャラクタと呼ぶこともあります。
このほか、秀丸エディタで開いているテキストファイルの中には、やはり特殊な表現を使わないと検索できない部分があります。
この図に示した、行頭とか行末を検索したい場合です。このようなとき、以下のようなメタキャラクタを使います。
カレット(^)
機能:行頭を表す
ドル記号($)
機能:行末を表す
再登場したカレット(^)は、注意が必要です。
[ ]の先頭で使うときは除外を表しました。行頭を表すのは、[ ]の先頭にないときだけです。たとえば、
[^a-zA-Z]
なら「アルファベット以外」を表しますが、
^[a-zA-Z]
とすると、「行頭にアルファベットがあるもの」にヒットします。
■
また、タブや改行など(制御文字と言います)を表したいときには、
円記号 + 所定の文字
という表記方法があり、このような表し方をエスケープシーケンスと言います。実際に使用する代表的なエスケープシーケンスは以下のとおり。
\n
機能:改行を表す
\t
機能:タブ文字を表す
\<
機能:英単語の始まり
\>
機能:英単語の終わり
\w
機能:英単語
このような表現、つまりエスケープシーケンスを作るときの円記号をエスケープ文字と言います。
■
エスケープ文字には、もうひとつ重要な役割があります。それは、上にあげたようなメタキャラクタそのものを検索したいとき、です。
たとえば半角丸カッコを検索したいときには、
(
だけではなく、
\(
と指定します。
秀丸エディタの場合、検索ダイアログで「正規表現」をオフにすれば、エスケープせずに半角丸カッコを検索することは可能です。しかし、他の正規表現と組み合わせて使う場合には、エスケープしなければなりません。
例:
\([ァ-ヶーぁ-ん亜-熙]
和文の前に半角丸カッコがある場合を検索します。「和文中では丸カッコを全角にしなければならない」というルールのときに使えます。
【今回のまとめ】
●正規表現に使う特殊文字をメタキャラクタ(メタ文字)と言う
アスタリスク(*)、プラス(+)、クエスチョンマーク(?)、大カッコ [ ]、丸カッコ ( )、ハイフン(-)、カレット(^)、縦棒(|)、ドル記号($)などがある
●メタキャラクタのなかには、使い方によって意味の異なるものもある
●円記号(エスケープ文字)を付けた表現をエスケープシーケンスといい、特殊な制御記号などを検索できる
\t、\n、\<、\>、\w などがある
【例】
[^。]\n
……改行の前に句点がない箇所にヒット
^"
……行頭に二重引用符がある箇所にヒット
※Excelからテキストに貼り付けたとき、セル内改行があるセルの先頭には二重引用符が付きます。
\w\t\w
……英単語 + タブ + 英単語という箇所にヒット
この記事へのコメントは終了しました。
コメント
縦書きに有利という理由でQXエディタを使っています。
でも実務翻訳では縦書きの必要はまずないですし、
(塾の国語の先生の時は役に立ちました)
いろいろと正規表現の解説書やマクロ集がそろっている秀丸エディタのほうがやっぱりいいのかなぁ、
と学生時代から思いつつ、
でも秀丸のアイコンその他って、面白味がないし、
なにより初期設定の調整の面倒さがあるよなぁっとかいろいろ物思いしてしまいまして、結局QXのままです。
(大学院生時代など、アイコンがかわいいという理由だけでエムエディタで論文を読んでいました。笑)
いつも雑談ばかりですみません。。
今日から秀丸に改めます。
投稿: 原田拓郎 | 2013/01/03 19:33:38
結局現在の仕事が忙しく、
1)初期設定が簡易であること、
2)印刷オプションが豊富であること、
3)ふすま紙に「かわいい女の子」で検索したイメージを使えること(でかいです。頑張って探したかわいい子です。笑)
などの理由でQX エディタのままです。
僕の現在の仕事スタイルでは、QGREPで正規表現の検索・置換さえできれば事足りるわけで(置換の方法はまだよくわかりません。手作業です)、時流に乗らなくても当面たべていければいいや、との結論になりました。
プログラミング作業自体のおもしろさは少年時代にやりこんでおなか一杯感がありますので、
今さらマクロでいろいろ組んでも、その道の仕事ではない自分がお給料をもらえるわけではなし、
俺はふすま紙の女の子の笑顔のほうが大事なのさ、と開き直ってしまいました(笑)。
拡張子で秀丸とQXを使い分ける、というのが理想でしょうが、現在の僕にとっては、そこまで研究するのは趣味の領域でしかありません。。同じ趣味ならジョギングのほうがいい、
とか
不埒なことばかり申しましてスミマセン。
人格の陶冶が必要です。。
投稿: 原田拓郎 | 2013/01/04 10:26:55
これまで、たいへん場をわきまえない不誠実なコメントをいたしまして、素晴らしいブログを汚してしまいましたこと、お詫びいたします。
ジョギングを再開し、禅のエクササイズをすることで、ようやく真人間に戻り始めました。以後、以前のような不誠実なコメントはいたしません。重ねましてお詫びいたします。
本日、いつものように早朝起床で時間がございましたので、秀丸エディタを導入いたしました。
これから、先生のブログを拝読して、正規表現について真面目に学んでいきたいと思います。
「正規表現とは」というテーマで一冊書かれた書籍はまだ目にしたことがなく、先生のブログは執筆者にとって貴重な情報源だと思います。今後ともよろしくお願いいたします。
投稿: 原田拓郎 | 2013/01/05 6:41:12