PyCharm 2024.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|wood、z または wood と一致します。(z|w)oozoo または wood と一致します。

{ n }

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

{ n ,}

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

例: o{2,}Bobo と一致せず、「foooood」のすべての o と一致します。

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

{ n , m }

mn は非負の整数です。少なくとも n 回、最大で m 回一致します。例: o{1,3} は、「fooooood」の最初の 3 つの o と一致します。o{0,1}o? と同等です。

[ xyz ]

文字セット。囲まれた文字のいずれかに一致します。例: [abc]プレーンa と一致します

[^ xyz ]

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

[ a-z ]

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

[^ m-z ]

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

\b

単語の境界、つまり単語とスペース間の位置に一致します。例: er\b動詞では決してなく、erer と一致します

\B

単語以外の境界に一致します。ea*r\Bear決して先に一致ません

\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 コードを正規表現で使用できるようにします。

\x n

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

関連ページ:

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

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

使用箇所の検索

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