PyCharm 2019.3ヘルプ

正規表現を使って文字列を見つけて置き換える

テキストの特定のパターンを検索および置換する場合は、正規表現(英語)を使用します。パターンマッチング、解析、結果のフィルタリングなどに役立ちます。正規表現構文を学習したら、ほぼすべての言語で使用できます。

  1. Ctrl+R を押して、検索と置換のペインを開きます。

  2. 上部のフィールドに検索文字列を、下部のフィールドに置換文字列を入力します。

    Regex search and replace fields

    デフォルトでは、正規表現チェックボックスが選択されています。正規表現構文の参照を確認する必要がある場合は、正規表現の横にある疑問符をクリックします。

  3. 特殊な正規表現記号を含むテキスト文字列を検索すると、PyCharmは検索フィールドにバックラッシュ \ を使用して自動的にエスケープします。

    ただし、.[{()\^$|?*+などのメタキャラクターを具体的に検索する場合は、バックスラッシュ \でエスケープする必要があるため、認識できます。

    例: .が必要な場合は、検索フィールドに \. と入力します。

  4. 検索フィールドに文字の範囲を入力すると、PyCharmは大文字と小文字を一致させることができます。

    例:大文字のみを検索する場合は、検索フィールドに次のように入力します。

    \b[A-Z]
  5. 大/小文字の一致チェックボックスをオフにすると、PyCharmは大文字と小文字の両方を検索します。指定した範囲の大文字と小文字を一致させるには、大/小文字の一致チェックボックスを選択します。

    The result of the Match Case selection

  6. 出現箇所をブラウズすると、PyCharmは置換のヒントを表示するため、置換ボタンをクリックする前に潜在的な結果を見ることができます。

    Replacement hints

正規表現キャプチャーグループと逆参照を使用する

それらをグループ化するために、括弧内に正規表現を入れることができます。各グループには1から始まる番号が付いているため、置換パターンで参照(後方参照)することができます。グループ0は正規表現全体を表します。

次のコードを考えてみましょう:

<form action="" class="form-inline" method="post"> <input type="text" class="form-control" name="username" value="Username"> <input type="password" class="form-control" name="password" value="Password"> <input class="btn btn-default" type="submit" value="Login"> </form>
  1. 検索を開き、ペイン Ctrl+Rを置き換えます。

  2. 検索フィールドに、キャプチャーグループ(英語)を示す括弧 () を入力します(例: \svalue="(.*)?"\s*(>*)

  3. 交換する場では、後方参照(英語) 1から始まる番号で、このような基、例: placeholder="$1"

  4. PyCharmは検索仕様に基づいて見つかった出現箇所を強調表示し、ヒントに置換文字列を表示します。

    Replace with regex result

大文字と小文字を切り替える

正規表現を使用して、いくつかの条件に一致する文字の大/小文字を変更することができます。

  1. 検索を開き、ペイン Ctrl+Rを置き換えます。正規表現 チェックボックスが選択されていることを確認してください。

  2. 検索フィールドに検索パターンを入力します。

  3. 置き換えフィールドで、達成したいものに応じて、次のいずれかの構文を入力します。

    • \l は、文字列内の次の文字まで小文字に変更します。
      ex: Barbarになります。

    • \u は、文字列内の次の文字まで大文字に変更します。
      ex: barBarになります。

    • \L は、リテラル・ストリング \Eの終わりまで文字を小文字に変更します。
      例: BARbarになります。

    • \U は、リテラル・ストリング \Eの終わりまで文字を大文字に変更します。
      例: barBARになります。

    Switch to the uppercase character example

詳細についてはRegEx構文の参照表を参照してください。

最終更新日: 2019年12月10日