編集済み 2 数日前 によって ExtremeHow 編集チーム
BBEdit正規表現検索テキスト処理プログラミングテキストエディタソフトウェア生産性ツールエディタ書くアプリケーション設定ユーティリティコード開発システムスクリプトカスタマイズ
翻訳が更新されました 2 数日前
正規表現(regexと略されることが多い)は、検索パターンを形成する文字のシーケンスです。テキスト解析、データ検証、シンタックスハイライトなどで広く使用されています。macOS向けの人気テキストエディタであるBBEditは、正規表現を強力にサポートしており、ユーザーがテキストを効率的に検索および操作できるようにしています。このガイドでは、BBEditで正規表現を効果的に使用する方法を説明します。基本をカバーし、例を示し、いくつかの高度な機能を紹介します。
例を詳しく見る前に、BBEditでの正規表現の動作について理解を深めましょう。このアプリケーションでは、固定の文字列ではなくパターンを使用して検索を行うことができ、大きな文書を扱う場合や、繰り返しの作業を行う場合に特に便利です。
BBEditで正規表現を使用するには、検索ダイアログでそれを有効化する必要があります。BBEditを開き、Command + F
を押して検索パネルを開きます。そこに「Grepを使用」オプションをチェックします。BBEditでは、「Grep」はUnixツールから派生した同様の構文を持つ正規表現の別名です。
正規表現を効果的に使用するためには、その基本構文を理解することが重要です。基本的な要素をいくつか見ていきましょう:
[abc]
のように、括弧内の任意の文字にマッチします。例えば、[aeiou]
は任意の母音にマッチします。.
は、改行文字を除く任意の単一の文字にマッチします。?
は0または1回の出現にマッチし、アスタリスク*
は0回以上の出現にマッチし、プラス+
は1回以上の出現にマッチします。^
は行の開始を示し、ドル記号$
は行の終わりを示します。( )
は式をグループ化し、一致を記憶します。例えば、(abc)
はグループ「abc」をマッチして記憶します。BBEditでテキストを検索するための正規表現の基本的な例を見てみましょう。
ドキュメント内の「cat」という単語のすべてのインスタンスを見つけたいとします。検索ボックスにcat
と入力します。「Cat」や「CAT」のようなバリエーションを含めるには、文字クラスを使用するか、大文字小文字を区別しない検索を行います。文字クラスの場合、[Cc][Aa][Tt]
と入力します。
「fish fish」のような重複した単語を含むドキュメントがあり、それらを見つけたい場合は、パターン(\b\w+\b)\s+\1
を使用します。それがどのように機能するか:
(\b\w+\b)
には単語全体が含まれています(\w+は1つ以上の単語文字からなる単語)。\s+
は単語の後に1つ以上の空白文字にマッチします。\1
はキャプチャされたグループを再度参照し、繰り返される単語を見つけます。特定の単語で始まる行を見つけるためにアンカーを使用します。例えば、パターン^StartWord
は「StartWord」で始まる行を見つけます。同様に、EndWord$
は「EndWord」で終わる行を見つけます。
正規表現はBBEditにおいて検索と置換機能にも使用でき、作業を自動化し、ワークフローを合理化します。
ドキュメント内のすべての数字を「X」に置換する必要がある場合、\d
を使用して数字を見つけ、「X」で置換します。検索ボックスに\d
を入力し、置換ボックスに「X」を入力します。
「123-45-6789」とフォーマットされた数字のリストがあり、「(123) 45-6789」と再フォーマットしたい場合は、次のパターンで検索と置換を行います:
Find: (\d{3})-(\d{2})-(\d{4}) Replace: (\1) \2-\3
このパターンはキャプチャされたグループを使用して、番号を希望の形式に再配列します。
ドキュメントに不要なスペースがある場合、それらを\s+
を使用して見つけ、単一のスペースに置き換えます。これにより、テキストがクリーンになります。
BBEditは正規表現の高度な機能をサポートし、より複雑なタスクに対する柔軟性とパワーを提供します。
ルックアヘッドは、パターンマッチングを行う際に文字を消費せずに使用されるゼロ幅アサーションです。たとえば、「pie」に続かない「apple」を見つけたい場合、次のようにします:
(?=apple)(?!.*pie)
ルックビハインドは、別のパターンの前に出現するパターンをマッチします。「apple」に続かない「pie」を見つけるには、次を使用します:
正規表現のテスト
正規表現が正確で期待通りに動作することを確認するためにテストすることが重要です。BBEditは、ドキュメント内で正規表現の検索および置換の結果を直接を見ることができるテスト機能をサポートしています。
正規表現のデバッグ
BBEditは、検索パネルにある「行を含む行を処理」オプションを提供しており、正規表現がテキストにどのように影響するかをデバッグして理解するのに役立ちます。
BBEditにおける正規表現の実用例
BBEditで正規表現が非常に役立つ実用的な応用例を見ていきましょう。
アプリケーション1: データ抽出
「Name: John Doe, Phone: 123-456-7890」とフォーマットされたエントリを含むドキュメントがあり、電話番号を抽出したい場合、次のパターンを使用します:
Phone:\s*(\d{3}-\d{3}-\d{4})これは「Phone:」という連続したテキストの後にある電話番号に着目します。
アプリケーション2: データの検証
リストのメールアドレスを検証するために、次のような正規表現パターンを使用できます:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}これにより、メールの形式が正しいことを確認できます。
アプリケーション3: コードデータの転送
複数行にわたって変数「a」と「b」の値を交換したい場合、例えば
let a = 1, b = 2;
のような形式で、次のスワップregexを使用します:Find: let a = (\d+), b = (\d+); Replace: let a = \2, b = \1;アプリケーション4: テキスト内のパターン検出
ドキュメント内でHTMLタグを検索し、問題を特定したり修正したりします:
これにより、任意の開閉HTMLタグにマッチします。
結論
正規表現はBBEdit内でのテキスト操作やデータ処理の強力なツールです。基本を学び、徐々に高度な技術に移行することで、複雑なタスクの簡素化、データの検証、コードの変更などにその可能性を最大限に活用できます。例を通じての実験やテストは、正規表現を効果的に使用するスキルを向上させます。各ユニークなタスクには独自のカスタマイズされた正規表現ソリューションがあり、BBEdit内でのこのツールの多様性と効率性を示しています。
記事の内容に誤りがある場合, あなたは
コメント