# 翻訳者のための正規表現~基本その3
ここまで、基本その1~基本その2で説明してきたパターンのルールは、大ざっぱに言うと
・1文字単位のヒット
・いろいろな繰り返しパターン
のバリエーションでした。範囲も指定しましたが、ヒットするのはあくまでもその範囲の1文字、でした。
基本その3では、文字列のかたまりを扱うパターンについて説明します。
論理和(OR)
縦棒(|)
機能:縦棒で区切ってと並べた文字列のいずれかにヒット
論理和などと言うと難しそうに聞こえますが、まあ気にしないでくださいw 縦棒で並べる語句の数は、環境によって制限があったりなかったりします。
例:
日本|イタリア|ドイツ
先の大戦で負けた、いずれかの国名にヒットします。
仁|義|礼|智|忠|信|孝|悌
八犬伝でおなじみの8文字のいずれかにヒットしますが、これが無意味なことはもうおわかりだと思います。すでにやった [仁義礼智忠信孝悌] のパターンを使うべきです。
グループ化
丸カッコ ( )
機能:カッコで囲った文字列をグループとしてひとまとめにする
これを覚えると、指定できるパターンがぐっと広がります。ぜひ、基礎としてここまではマスターしてください。
1文字の繰り返しは、クエスチョンマーク(?)、アスタリスク(*)、プラス(+)のいずれかでしたが、2文字以上を繰り返したいときにはどうすればいいでしょうか。たとえば、「レレレ~」ではなく、「オラオラオラ~!」みたいな場合。
こういうとき、「オラ」を丸カッコでグループ化します。
(オラ)+
こうすると、
「オラ、悟空だ」にも「オラオラオラ~!」
にもヒットします。
最初にやった縦棒のORも、実はこの丸カッコと組み合わせるともっと実用性がアップします。
日本|イタリア|ドイツ
のそれぞれに「~軍」と続けるにはどうすればいいか、ちょっと考えてみてください。
日本|イタリア|ドイツ軍
では、「日本、イタリア、ドイツ軍」のいずれかになってしまいます。そこで、
日本|イタリア|ドイツ
のかたまりを丸カッコでくくり、
(日本|イタリア|ドイツ)軍
とすれば、3カ国の軍ぜんぶにヒットします。
accessor(y|ies)
英字でもやってみます。これでaccessoryの単数複数、両方にヒットします。
【今回のまとめ】
●縦棒で区切ると、ORとして機能する
●縦棒で、文字列の「いずれか」にヒットする
●1文字単位にも縦棒は使えるが、あまり意味はない
●丸カッコで文字列をグループ化できる
この記事へのコメントは終了しました。
コメント