PyCharm 2025.3 ヘルプ

正規表現構文リファレンス

このセクションは、検索と置換の作成、およびナビゲーションパターンの発行に使用できる正規表現構文(英語)の概要です。

RegEx 構文リファレンス

文字

説明

\

次の文字を特殊文字またはリテラルとしてマークします。例:

  • n は文字 n と一致します。\n は改行文字と一致します。

  • シーケンス \\\ と一致し、\(( と一致します。

^

入力の始めに一致します。

$

入力の終わりに一致します。

*

直前の文字と 0 回以上一致します。例: zo*z または zoo のいずれかに一致します。

+

直前の文字と 1 回以上一致します。例: zo+zoo と一致しますが、z には一致しません。

?

直前の文字に 0 回または 1 回マッチします。例: a?ve?neverve と一致します。

.

改行文字を除く任意の 1 文字と一致します。

( 部分式 )

部分式と一致し、その一致を記憶します。正規表現の一部が括弧で囲まれている場合、正規表現のその部分はグループ化されます。正規表現演算子をグループ全体に適用できます。

  • 同じ正規表現内で一致した部分文字列を使用する必要がある場合は、後方参照 \numnum = 1..n)を使用してそれを取得できます。

  • 現在の正規表現の外側のどこかで(たとえば、置換文字列として別の正規表現で)一致した部分文字列を参照する必要がある場合は、ドル記号 $numnum = 1..n)を使用してそれを検索できます。

  • 括弧文字を部分式に含める必要がある場合は、\( または \) を使用してください。

x|y

x または y のいずれかに一致します。例: z|woodz または wood に一致します。(z|w)oozoo または wood に一致します。

{n}

n は非負の整数です。n正確に一致します。例: o{2}Bobo とは一致しませんが、foooood の最初の 2 つの o とは一致します。

{n,}

n は負でない整数です。少なくとも n 回一致します。

例: o{2,}Bobo とは一致しませんが、food のすべての o と一致します。

o{1,}o+ に相当します。o{0,}o* と同等です。

{n,m}

mn は非負整数です。n 以上 m以下の繰り返しに一致します。例: o{1,3}food の最初の 3 つの「o」に一致します。o{0,1}o? に相当します。

[xyz]

文字セット。囲まれた文字のいずれかと一致します。例: [abc]plaina と一致します。

[^xyz]

否定の文字セット。囲まれていない任意の文字と一致します。例: [^abc]plain 内の p と一致します。

[a-z]

文字の範囲。指定された範囲内の任意の文字と一致します。例: [a-z] は、a から z までの範囲内の任意の小文字のアルファベット文字と一致します。

[^m-z]

負の文字範囲。指定された範囲外の任意の文字と一致します。例: [^m-z] は、m から z の範囲外の任意の文字と一致します。

\b

単語の境界、つまり単語とスペース間の位置に一致します。例: er\bneverer と一致しますが、verber とは一致しません。

\B

非単語境界に一致します。ea*r\Bnever earlyear に一致します。

\d

数字の文字と一致します。[0-9] に相当します。

\D

非数字の文字と一致します。[^0-9] に相当します。

\f

フォームフィード文字に一致します。

\n

改行文字と一致します。

\r

キャリッジリターン文字に一致します。

\s

スペース、タブ、フォームフィードなどの任意の空白文字に一致します。[ \f\n\r\t\v] と同等です。

\S

空白以外の空白文字と一致します。[^ \f\n\r\t\v] に相当します。

\t

タブ文字に一致します。

\v

縦のタブ文字に一致します。

\w

アンダースコアを含む任意の単語文字に一致します。[A-Za-z0-9_] と同等です。検索フィールドで使用してください。

\W

単語以外の任意の文字と一致します。[^A-Za-z0-9_] に相当します。

\num

num に一致します。ここで、num は正の整数で、記憶された一致への参照を示します。

例: (.)\1 は 2 つの連続した同一の文字と一致します。

\n

n に一致します。ここで、n は 8 進エスケープ値です。8 進エスケープ値は 1 桁、2 桁、3 桁の長さである必要があります。

例: \11\011 はどちらもタブ文字と一致します。

\0011 は、\001 & 1 と同等です。

オクタルエスケープ値は 256 を超えてはいけません。そうした場合、最初の 2 桁だけが式を構成します。ASCII コードを正規表現で使用できるようにします。

\xn

n に一致します。ここで、n は 16 進数のエスケープ値です。16 進数のエスケープ値は 2 桁でなければなりません。

例: \x41A と一致します。\x041 は、\x04 & 1

ASCII コードを正規表現で使用できるようにします。

\$

$ 文字を検索します。

\\$

検索フィールドのこの正規表現は、行末の \ 文字を検索しようとしていることを意味します。

\l

次の文字を小文字に変更します。このタイプの正規表現は、置換フィールドで使用します。

\u

次の文字を大文字に変更します。このタイプの正規表現は、置換フィールドで使用します。

\L

\E までの文字をすべて小文字に変換します。このタイプの正規表現は、置換フィールドで使用します。

\U

\E までの以降の文字をすべて大文字に変換します。このタイプの正規表現は、置換フィールドで使用してください。

(?!)

これは否定先読みのパターンです。例: A(?!B) は、PyCharm が A を検索することを意味しますが、B が続かない場合に限ります。

(?=)

これは肯定先読みのパターンです。例: A(?=B) は、PyCharm が A を検索するが、B が続く場合にのみ一致することを意味します。

(?<=)

これは肯定後読みのパターンです。例: (?<=B)A は、PyCharm が A を検索することを意味しますが、その前に B がある場合のみです。

(?<!)

これは否定後読みのパターンです。例: (?<!B)A は、PyCharm が A を検索することを意味しますが、その前に B がない場合のみです。

PyCharm はすべての標準正規表現構文をサポートしているため、構文の詳細については https://www.regular-expressions.info(英語) を確認できます。

ヒント

PyCharm は、正規表現の有効性をチェックしたり、正規表現を編集したりするためのインテンションアクションを提供します。正規表現にキャレットを置き、Alt+Enter を押します。このコンテキストで利用可能なインテンションアクションの候補リストが表示されます。

Checking regular expressions
  • 正規表現の確認を選択し、Enter を押します。ポップアップダイアログの上部ペインに、現在の正規表現が表示されます。下部ペインに、この正規表現に一致する文字列を入力します。入力した文字列が正規表現に一致する場合、PyCharm は正規表現に緑色のチェックマークを表示します。正規表現に一致しない場合は、the Error icon が表示されます。

    A dialog with current regex
  • 正規表現フラグメントの編集を選択し、Enter を押します。エディター内の別の分割タブで正規表現が開き、編集できます。これはあくまでスクラッチパッドであり、物理的なファイルは作成されないことに注意してください。

    A scratch file with the current regex

    スクラッチパッドに入力すると、すべての変更が元の正規表現と同期されます。スクラッチパッドを閉じるには、Ctrl+F4 を押します。

  • 文字列リテラルには RegEx インジェクションを使用します。ターゲット文字列リテラルを選択し、Alt+Enter を押してインテンションアクションを呼び出し、言語または参照の挿入を選択して、使用可能なオプションのリストから RegEx を選択します。

    Injecting RegEx
2025 年 5 月 27 日

関連ページ:

正規表現を使用してテキストを検索して置換する

特定のテキストパターンを検索・置換したい場合は、正規表現を使用します。パターンマッチング、解析、結果のフィルタリングなどに役立ちます。正規表現の構文を習得すれば、ほぼすべての言語で使用できます。IDE は Java 正規表現を使用します。これは、IDE が実行される JDK に含まれる正規表現です。パターンの詳細については、クラスパターン(docs.oracle.com)を参照してください。これらの式は、完全ではありませんが、ほとんどの場合、PCRE (Perl 互換正規表現) と互換性がありま...

使用箇所の検索

コードを記述または編集するときに、変更または削除するコード要素に遭遇する場合があります。変更を行う前に、コード要素がどこで使用され、アプリケーションにどのように影響するかを確認することをお勧めします。使用箇所の検索アクションを使用すると、コードベース全体でコード要素の参照を検索できます。検索プロセスを管理し、単一のファイルのみを検索したり、検索範囲をプロジェクト全体に拡張したり、特定の検索範囲を作成したりできます。さらに、使用箇所のハイライトの色を設定したり、使用箇所の自動ハイライトを完全に無効...