正規表現
シリーズ【正規表現】──AI時代でも廃れない知識
AIに頼めば、簡単なマクロやプログラムならすぐに作ってくれる時代になりました。私自身、一から自分でコードを書くことはほとんどなくなっています。
それでも、今なお自分で頻繁に使っているものがあります。
「正規表現」です。
かつては、翻訳やQA作業を効率化するために、Word VBAや秀丸マクロ、プログラミング言語などのIT技術を独学し、マクロや小さなプログラムを自作して効率化に取り組んできました。
memoQと出会ってからは、マクロを自作する頻度はすっかり減りました。それでも、memoQ外での作業を効率化するために、これまで書き溜めてきたマクロを使うことがあります。
さらに、AIエージェントや、バイブコーディング(AIに指示を出してコードを書かせる開発のやり方)が広まった現在では、自分でコードを書く機会はさらに少なくなりました。
そんな今でも、正規表現は変わらず現役です。
正規表現について解説した記事は世の中に数多くありますが、本ブログでも、翻訳やQAの実務で役立つ使い方を中心に、初歩の初歩から少しずつご紹介していきたいと思います。
正規表現ってなに?
一言でいうと、「文字のパターンを指定して検索する仕組み」です。
ふつうの検索では、入力した文字と同じ文字を探します。
例えば、「2026年」と検索すれば、「2026年」が見つかります。
一方、正規表現では、文字そのものではなく、「数字4桁」+「年」のようなパターンを指定して検索できます。
すると、「2026年」だけでなく、「2027年」や「1900年」なども、一度の検索でまとめて見つけることができます。
これが正規表現の基本的な考え方です。
図1 通常の検索と正規表現による検索の違い、および \d{4}年 と文字列との対応関係
初歩の初歩──最初に覚える表現
正規表現には、さまざまな記号があります。
初めて見ると何やら暗号のように見えるかもしれませんが、最初からすべて覚える必要はありません。実際によく使う表現はそれほど多くありません。
まずは、次の4つを見てみましょう。
| 表現 | 意味 |
|---|---|
| \d | 数字1文字 |
| + | 直前の文字や表現の1回以上の繰り返し |
| {4} | 直前の文字や表現のちょうど4回の繰り返し |
| . | 改行を除く、任意の1文字 |
\d──数字1文字
まず、
\d
は、数字1文字を表します。
例えば、「1」「5」「9」のような数字を検索できます。
+──1回以上の繰り返し
\d の後ろに + を付けて、
\d+
とすると、「数字が1文字以上続いている部分」を表します。
そのため、
3202610000
のいずれも検索できます。
ここで大切なのは、\d+ という式そのものを丸暗記することではありません。
\d が「数字1文字」、+ が「その直前の表現の1回以上の繰り返し」なので、2つを組み合わせると「数字が1文字以上続いている部分」になる、と考えます。
正規表現は、このように小さな部品を組み合わせながら作っていくものです。
{4}──ちょうど4回の繰り返し
今度は、\d の後ろに {4} を付けてみます。
\d{4}
これは、「数字がちょうど4文字並んでいる」という意味になります。
例えば、
2026
や
1900
のような4桁の数字を検索できます。
さらに、その後ろに普通の文字をそのまま付けることもできます。
\d{4}年
とすれば、
1900年2026年2027年
といった「4桁の数字+年」をまとめて検索できます。
「2026年」という文字そのものを指定するのではなく、「4桁の数字の後ろに『年』がある文字列」を探しているわけです。
.──任意の1文字
. は、改行を除く任意の1文字を表します。
例えば、
第.章
とすると、
第1章第2章第一章
など、「第」と「章」の間に何か1文字が入っている文字列を検索できます。
非常に便利な表現ですが、対象となる範囲が広いため、意図していない文字列まで検索してしまうこともあります。実際に使うときには、検索結果を確認しながら使うのがおすすめです。
正規表現は「暗記」するものではない
ここまで見ると、正規表現は何やら特殊な記号の集まりに見えるかもしれません。
しかし、複雑な式を最初から丸暗記する必要はありません。
例えば、
\d{4}年
も、
- \d = 数字1文字
- {4} = それが4回
- 年 = 文字「年」
という3つの部品を組み合わせただけです。
つまり、
「4桁の数字+年」
という意味になります。
何を探したいのかを考え、それを小さな部品に分けて組み立てていく。この考え方さえ分かれば、正規表現はそれほど難しいものではありません。
特に翻訳やQAのように大量の文字を扱う仕事では、覚えておくと地味ながら非常に便利な道具です。
次回予告
今回は、正規表現とはどのようなものか、ごく基本的な表現を使いながらご紹介しました。
次回は、もう少し実践的な例を見てみます。
例えば、
2026年9月1日2025年12月31日1999年1月10日
のように、年・月・日がそれぞれ異なる日付があります。
これらを一つずつ検索するのではなく、一つの正規表現ですべてまとめて検索するには、どのような式を書けばよいのでしょうか。
次回は、今回ご紹介した表現に新しい表現を少しだけ加えながら、日付を検索する正規表現を一から組み立ててみます。
そして、その次の回では、見つけた日付を、
2026年9月1日 → 9/1/2026
のような米国式の日付や、
2026年9月1日 → 1/9/2026
のような欧州式の日付に置き換える方法をご紹介する予定です。
まずは「検索」、そして次に「置換」へ。
少しずつ正規表現のできることを広げていきます。