正規表現(RegEx)入門ガイド|テキスト検索をマスターするための基礎知識
文章の中から繰り返し現れるパターンを見つけたいと思ったことはありませんか?ブラウザやワープロの検索機能を使ったことはあっても、より複雑な条件で検索したい場合には、干し草の山から針を探すような苦労を強いられることもあります。
幸いなことに、テキストの中から1文字単位の精度でパターンを抽出する方法があります。それが「正規表現(Regular Expressions / RegEx)」です。正規表現を使いこなせば、あなたもテキスト検索の達人になれるでしょう。
正規表現はどこで使える?
正規表現はUnixやLinuxによって広く普及しましたが、Microsoft Wordをはじめ、さまざまなソフトウェアやパッケージで利用できます。
特に有名なのは、grep、Awk、SedといったLinuxの定番ツールでの活用です。
例えば、PCに接続されているUSBデバイスを確認したいとしましょう。lspciを実行するとすべてのデバイス一覧が表示されますが、USBの項目を目視で探さなければなりません。そこで次のコマンドを使えば、USBデバイスだけを絞り込んで表示できます。
lspci | grep "USB"
これは正規表現の最もシンプルな使用例です。ターミナルで正規表現を使う最も一般的な方法ですが、これが唯一の使い方ではありません。現在では、テキストエディタからファイルマネージャーまで、多種多様なソフトウェアが正規表現をサポートしています。
パターンを探す
ターミナルでファイルやフォルダを選択するとき、ワイルドカードとして機能する*という文字を使ったことがあるかもしれません。例えば、フォルダ内のすべてのJPGファイルを一覧表示するには、次のようにします。
ls *.jpg
これと同じ操作を正規表現で行うと、次のようになります。
ls | grep -E "\.jpg"
JPGファイルとPNGファイルの両方を検索したい場合は、次のように記述します。
ls | grep -E "(\.jpg|\.png)"
文字範囲の指定
特定のパターンではなく、特定の範囲の文字を検索したい場合は、角括弧で範囲を定義します。例えば、[a-z]というパターンは、アルファベットの小文字で構成される任意の文字列に一致します。
お察しのとおり、[A-Z]なら大文字のみが対象になります。大文字・小文字の両方を含む任意の範囲を選びたい場合は、[a-zA-Z]という表現に変更します。
パターンが特定の回数だけ出現する箇所を探したいときは、波括弧で回数を指定できます。{5}ならパターンの5回の出現に一致し、数値の範囲も指定できるので、{5,10}なら5回から10回までの出現に一致します。
メタ文字
正規表現では、「メタ文字」と呼ばれる特殊な2つの文字を使って、文字列の一部を柔軟に検索することもできます。これらはシェルで使われるワイルドカードに似た働きをします。
最も基本的なのがドット(.)です。これは任意の1文字を表します。例えば、c.llというパターンは「cell」に一致するだけでなく、「cull」や「call」にも一致します。
ドットの後にアスタリスク(*)を組み合わせると、文字数に関係なく無限の文字列に一致させることができます。例えば、.*boardは「keyboard」と「skateboard」の両方に一致します。「key」と「skate」の文字数が異なっていても問題ありません。
エスケープ処理
画像ファイルの種類を選択した先ほどの例で、ピリオドの前にバックスラッシュ(\)を付けていたことに気づいたでしょうか("\.jpg")。これが正規表現における特殊文字のエスケープ方法です。
もしエスケープしなければ、パターンは拡張子である「.jpg」や「.png」だけでなく、「ajpg」や「opng」のような意図しない文字列にも一致してしまいます。.は任意の1文字に一致するワイルドカードであることを忘れないでください。
アンカーと境界
アンカーと境界を使うと、検索対象をさらに正確に定義できます。
前後に他の文字が付かない、独立した単語としての「computer」だけを見つけたい場合は、パターンを\<computer\>と定義します。
また、行頭や行末に出現するパターンだけを絞り込んで検索することも可能です。これはそれぞれ^と$という文字で実現します。
つまり、行頭に「computer」という単語がある行だけを検索したい場合は、パターンは^computerとなります。逆に行末にある場合には、computer$に変更します。
以上が正規表現の基本的なルールです。これらを自由に組み合わせれば、目的のパターンを正確に見つけ出せます。行頭の文字範囲や行末の交互の単語、特定の日付、年号の範囲なども、たった1つの文字列で検索できるのです。
正規表現を本格的にマスターしたい方は、ぜひ当サイトの「正規表現チートシート」も併せてチェックしてみてください。
-
タッチタイピング(ブラインドタッチ)入門ガイド|初心者が正しく身につける方法
タッチタイピング(ブラインドタッチ)とは、キーボードを見ずに10本の指すべてを使って文字を入力する技術のことです。タイピング速度を大幅に向上させたいなら、ぜひ習得しておきたいスキルの一つです。この記事では、これからタッチタイピングを学ぼうとしている初心者の方向けに、基本の考え方から具体的な練習方法までをわかりやすく解説します。 タッチタイピングとは? 「タッチタイピング」という名前から、タッチスクリーン操作を連想する人もいますが、実際はまったく関係ありません。タッチタイピングとは、キーボードに目を落とさずに、すべての指で文字を打てる能力のことを指します。そのためには、各キーの位置を覚えるだけ
-
HTMLとCSSの初心者向けガイド
今日、私たちのサイトを支えているさまざまなテクノロジーを見つけることができますが、インターネット全体で最も重要な2つのファイルはHTMLとCSSです。はい、複雑なものが必要な場合は、それに対応するためのテクノロジーもさらに必要になります。ただし、単純な個人用Webページを作成するだけの場合は、HTMLとCSSだけで十分です。 基本の紹介 これは、HTMLとCSSの初心者向けガイドであり、簡単なサイトをできるだけ早く作成する方法を示しています。結果は必ずしも「標準に準拠」しているとは限りません。さらに微調整して拡張したい場合は、自分で読む必要があります。ただし、これはサイトであり、ほとんどのブ