テキストエディタや翻訳支援ソフトなど、テキストを扱うソフトでは、文書内を検索するときのダイアログボックスで「正規表現」という検索オプションを選べるものが数多くあります。この正規表現というオプションは一体何だろう、と思ったことはありませんか。

170114_regex_dialog

正規表現というのは、検索語句を指定する特別な記述方法のことです。特有の意味を持つ記号を使って、単純な語句検索よりも手の込んだ条件を指定することができます。いったん身に付けてしまえば、とても便利で強力な機能です。

しかし、まったく初めての段階では、かなりハードルが高くて取っつきにくい機能でもあります。しかも、その段階でヘルプ等を読んでも、使い方がよくわかりません。たとえば、テキストエディタ「EmEditor」のヘルプで、「正規表現を使用するには」という項目を見ると、次のように書いてあります。

「正規表現は、開いている文書または複数のファイルからテキスト パターンを見つけるのに使用できます。正規表現は、通常の文字、つまりリテラル (たとえば、a から z までの文字)、メタ文字と呼ばれる特殊文字から成り立つテキスト パターンです。このパターンはテキスト検索時、1 つまたはそれ以上の文字列と一致します。」

いきなりこんな説明をされても、何が何だかサッパリわからん、という感じです。最初の段階では、こういう小難しい話は抜きにして、知識ゼロでも試せる簡単なところから少しずつ慣れていくのがよいのではないでしょうか。

というわけで、正規表現について何も知らないけれど検索で使ってみたい、という方は、取りあえず次の1つだけ覚えて試してみてください。それは、「テキスト内を検索するときに、正規表現モードをオンにして、複数の語句を | (半角の縦棒)で区切って指定すると、そのすべてを1回でまとめて検索できる」という機能です。

たとえば、英文のテキストの中で、“happy” “happily” “happiness” が出てくる箇所を見ていきたいと思ったときには、3つを別々に検索しなくても、正規表現をオンにして、検索文字列に「happy|happily|happiness」と指定すれば、1回でまとめて検索できます。

170114_emeditor_regex_happy

あるいは、日本語のテキストの中で “笑う” という単語が出てくる箇所を、活用形も含めて検索したいと思ったときには、正規表現をオンにして、検索文字列に「笑わ|笑い|笑う|笑え|笑お|笑っ」と指定すれば、“笑う” の五段活用すべてを1回で検索できます。

縦棒で組み合わせる語句は、必ずしも派生語や活用形どうしでなくても、何でもかまいません。たとえば、英文の中で “network” “platform” “communication” に注目したいと思ったら、「network|platform|communication」と指定すればよいわけです。

つまり、正規表現を使って検索語句を指定する際には、半角縦棒は「または」の意味を表す、ということになります。正規表現が持つ膨大な機能の中で ほんのさわりに過ぎませんが、これを知っているだけでも、便利な場面はあると思いますので、よろしければお試しください。

このように、特有の意味を持つ記号を使って、単純な語句検索よりも手の込んだ条件を指定できるのが、正規表現の特長です。工夫次第で、さまざまな形で活用できます。

※本当は、1つ目の例は「happ(y|ily|iness)」、2つ目の例は「笑[わい-おっ]」と指定するほうが、オーソドックスな正規表現になります。縦棒と同じように、( ) や [ – ] も、正規表現で特有の意味を持つ記号です。でも、そのあたりを深追いしていくと、すぐに小難しい話になってしまいますので、ひとまずは縦棒のみを使った検索を試してから、細かいことは おいおい身に付けていけばよいかと思います。

広告