ウェブエディタにおける正規表現のサポートは、Lucene Regexエンジンの実装によって制限されています。
正規表現を使用するには、フィルタ設定でを有効にしてください。フィルタ入力フィールドの緑のチェックマークは、有効な正規表現の成功した検証を示します。
クエリはデフォルトで大文字と小文字を区別しません。フィルタ設定でを有効にすると、大文字と小文字を区別するようになります。
(完全な単語のみを一致させ、長い単語内の部分文字列を一致させないことを保証する)は利用できません。
クエリ^abc$は期待通りに動作し、すなわち全体のセグメントと一致しますが、は任意のテキスト内の部分文字列abcと一致します。
制限事項
部分的にフォーマットされたクエリの正しい置換はサポートされていません。例えば、テキスト"\{b\>名<}: Bob, \{biu\>姓\<biu\}: Dylan."で"Jméno: $1, Příjmení: $2."を検索すると、"{>Jméno: Bob, Příjmení: Dylan\<b\}"として置換されます。
サポートされていないパターン
-
単語境界アンカー
\bは、正確な単語を一致させるために使用されます(デスクトップエディタで動作します)。 -
\\[1-9]- 後方参照(\1、\2など)、例えば(\w+)\s+\1は「hello hello」のような重複した単語と一致します。 -
\(\?=|\(\?!|\(\?<=|\(\?<!- 先読みと後読み、例えばcat(?=\.jpg)は「cat.jpg」の中の「cat」のみと一致します。 -
\(\?:- 非捕捉グループ、例えば(?:Mr|Mrs|Ms)\. \w+,ですが、捕捉グループ(Mr|Mrs|Ms)\. \w+はサポートされており、「Mrs. Smith」、「Mr. Brown」のような名前と一致します。 -
\(\?#- インラインコメント、例えば\d{4}-(?# year)\d{2}-(?# month)\d{2}(?# day)は「2025-06-25」と一致します。 -
\(\?P<[^>]+>- 名前付きキャプチャグループ、例えば(?P<amount>\d+)\s?(?P<currency>USD|EUR)は「150 USD」と「99 EUR」と一致します。
任意の単一文字のプレースホルダーとしてのドット (.)
-
c.at: 一致: “チャット”, “コート”。一致しない: “キャット”, “チート” -
wa.ter: 一致: “ウェイター”, “ウェイスタ” 。一致しない: “ウォーター” -
s.ip: 一致: “スキップ”, “シップ”, “スリップ”。一致しない: “sip”, “strip”
? - ゼロまたは1回の出現
-
colou?r: 一致: “カラー”, “カラ―” -
g?rain: 一致: “グレイン”, “レイン” -
books?: 一致: “本”, “本”
.* - 任意の数の文字(なしを含む)
-
h.*y: 一致: “ハッピー”, “ヒストリー”, “ハニー” -
sa.*d: 一致: “悲しい”, “砂”, “満足” -
m.*ing: 一致: “朝”, “会議”, “マーケティング”
.+ - 少なくとも1文字が表示される必要があります
-
pa.+er: 一致: “紙”, “画家” -
a.+ed: 一致: “尋ねた”, “受け入れた”, “許可された”
* - ゼロまたはそれ以上の出現
-
go*al: 一致: “ゴール”, “ゴーーーーール”
+ - 1回以上の出現
-
no+: 一致する: “no”, “noooooo” -
$1+: 一致する: “$1”, “$11”, “$111”
できるだけ具体的なパターンを使用することをお勧めします。オープンパターンはエディタでパフォーマンスの問題を引き起こす可能性があります。
重要
エディタには、正規表現パターンの複雑さに関する組み込みの制限があります。あまりにも広すぎるパターンやワイルドカードを多く使用するパターンは、無効な正規表現として失敗する可能性があります。これを避けるために:
-
パターンは短く具体的に保ってください。
error-[0-9]{3}は問題ありませんが;.*a.*b.*c.*d.*は問題です。 -
ワイルドカードを最小限に抑えてください。各
.+または.*は内部の複雑さを増加させます。可能な限り[A-Z]+のような文字クラスを.*よりも好んで使用してください。 -
繰り返しを伴う長い選択肢を避けてください。
(word1|word2|...|word20){2,}のようなパターンはすぐに制限を超える可能性があります。選択肢に複数の単語や句読点が含まれる場合、これは正規表現の複雑さを増加させます。 -
可能な場合は片側をアンカーしてください。
^prefix.*は.*middle.*よりもはるかに安価です。
パターンが拒否された場合は、よりターゲットを絞ったものにしてみてください: より長い固定プレフィックスから始めて、そこから絞り込んでください。選択肢の数を減らすか、すべてを1つの複雑な正規表現にまとめるのではなく、別々のパターンで処理することを検討してください。
例:
-
[A-Z]+: 1つ以上の大文字の連続に一致します (シーケンス)。 -
[A-Z]{2,}: 大文字の任意の系列に一致します (略語や大文字で書かれた文字列に一致するのに便利) -
[0-9]{4}: 4桁の数字に一致します。例:"1999", "2003", "1876" (4桁以上の文字列内にも見つかる; 結果を制限するには、将来計画されているMatch wordsオプションを使用する必要があります) -
[A-Za-z0-9]+: 任意の英数字の文字列に一致します (hello! → helloは一致しますが、!は[A-Za-z0-9]の一部ではありません; 100% → 100のみが一致します) -
([A-Za-z]+\d+|\d+[A-Za-z]+): 数字と文字の組み合わせに厳密に一致します。例: “user123”, “Admin99”, “Win11”, “5g”, “1080p” -
[0-9]{2,4}-[A-Z]{2,3}: ナンバープレートに一致します。例:“12-XY”, “9999-ABC”
-
\+[0-9]{1,2}: 一致 “+40”, “+1” -
\{version: [0-9]+\}: 一致 “{version: 12}”, “{version: 13}” -
C:\\[A-Za-z]+: Matches “C:\Users”, C:\Documents, “C:\Desktop”
-
デフォルトでは、正規表現フィルタリングは大文字と小文字を区別しないように実装されます。
c.at: 一致するもの: “chat”, “Chat”, “CHAT” および “coat”, “Coat”, “COAT” -
正規表現フィルタリングは UIフィルタと組み合わせることができます
正規表現のキャプチャグループは認識され、完全なクエリがハイライトされます。例えば、s(e)g は "seg" をハイライトします。キャプチャグループは置換に使用できます。例えば、「名前: Bob」は 名前: (.*?) で検索され、Jméno: $1 を使用して置換されます。欠落したバックリファレンスは優雅に処理されます。つまり、クエリ 名前: (.*?) と置換 Jméno: $1, タイトル: $2 は Jméノ: Bob, タイトル: $2 として置換されます。
バックリファレンスの置換の例:
-
フィルタ
(\d+),(\d+)と置換$1.$2を使用して小数点区切りを正規化します(例: 5,6 または 35,949 から 5.6 または 35.949 へ) -
フィルタ
(\d+)\.(\d+)と置換$1,$2を使用して小数点区切りを正規化します(例: 5.6 または 35.949 から 5,6 または 35,949 へ) -
フィルタ
(\d{4})-(\d{2})-(\d{2})と置換$3/$2/$1を使用して日付を再フォーマットします(例: 2025-06-05 から 05/06/2025 へ) -
フィルタ
ID-(\d{3,})と置換チケット #$1を使用してチケットの番号を抽出します(例: から へ) -
フィルタ
(cat|dog)と置換$1-$1を使用して一致したテキストを複製します(例: cat から cat-cat へ、dog から dog-dog へ) -
オプショナルグループ: フィルタ
こんにちは(, (\w+))?と置換こんにちは $1を使用して、名前の前や単独での「こんにちは」を置換して挨拶を変換します(例: から へ、 から へ)