図書館
- ↑以前はRegex++と呼ばれていました。
- 1 2ファジー正規表現エンジンの1つ。
- ↑バージョン2.13.0以降に搭載されました。
- ↑ ICU4J(Java版)は正規表現をサポートしていません。
- ↑ C++バインディングはGoogleによって開発され、2006年に正式にPCREの一部となりました。
言語
- ↑ "STD.regex - D プログラミング言語 - Digital Mars"。
- ↑ "Dotnet/Corefx" . GitHub . 2022年2月16日。
- ↑ "Dotnet/Corefx" . GitHub . 2022年2月16日。
言語機能
注:正規表現をサポートするライブラリを使用するアプリケーションは、必ずしもそのライブラリのすべての機能をサポートするとは限りません。たとえば、GNU grep はPCRE を使用しますが、PCRE が先読みをサポートするのに対し、GNU grep は先読みをサポートしません。
パート1
- ↑非貪欲な量指定子は、デフォルトの「できるだけ多くの文字」ではなく、可能な限り少ない文字にマッチします。なお、 POSIX以前の古いエンジンの多くは非貪欲であり、貪欲な量指定子を全く持っていませんでした。
- ↑シャイグループ(非キャプチャグループとも呼ばれる)は、後方参照で参照できません。非キャプチャグループは、グループの内容に後でアクセスする必要がない場合に、マッチングを高速化するために使用されます。
- ↑後方参照を使用すると、正規表現や置換文字列の後半部分で、以前に一致したグループを参照できます(該当する場合)。たとえば、 ([ab]+)\1は "abab" には一致しますが、"abaab" には一致しません。
- ↑ "Perl 正規表現構文 - 1.47.0"。
- ↑ 「ユーザーガイド - 1.47.0」
- 1 2 FREJ には繰り返し量化子はありませんが、単純な「?」量化子と同様に動作する「オプション」要素があります。
- 1 2 ES2018時点
- ↑ Lua の唯一の非貪欲な量指定子は であり
-、これは の非貪欲版ですや*の非貪欲版はありません。前者の場合、トークンの後に を繰り返すことで非貪欲な効果が得られますが、後者の場合、同等のものはありません。+?- - ↑オプションの正規表現ライブラリでのみサポートされています。
- ↑可変長、基盤となるES2018+エンジン経由
パート2
- ↑フラグ修飾子、モード修飾子、またはオプション文字とも呼ばれます。パターン例: "(?i:test)"。
- ↑独立した部分式とも呼ばれます。
- ↑後方参照に似ていますが、インデックスの代わりに名前を使用します。
- ↑再帰なしでバランスの取れた構造を照合できる特別な機能。
- ↑後方参照に数量詞を含めることができるため、その長さが予測不可能になる可能性があることを指します。
- 1 2 3 4 5 6 7 8 9 Unicodeプロパティのサポートは不完全な場合があります(製品は継続的に更新されます!)。新しいUnicodeリビジョンがリリースされると、対応するまで全て不完全な状態になります。
- ↑ ICU55より入手可能。
- ↑ JDK7以降で利用可能です。
- ↑サポートされる機能とプロパティの範囲は、実装によって異なります。
- ↑実験的なサポートはv5.29.9で追加されました。
- ↑ Python v3.11以降、およびオプションの正規表現ライブラリのみでサポートされています。
- ↑ Python バージョン 3.3 以降で使用する場合のみ、正規表現ライブラリで利用できる可能性があります。
- ↑オプションの正規表現ライブラリでのみサポートされています。
- ↑ (?ims:...) スタイル経由
- ↑ (?>...) - ネイティブにトランスパイル
- ↑ ES2018 (?<name>...構文)
- ↑ x フラグ(フリースペースモード、常時オン)
- ↑常時オンのvフラグ経由
- ↑基盤となるES2018+エンジン経由
API機能
- 1 2明示的な変換なしに内部的にフォーマットを使用できることを意味します。
- ↑正規表現全体の部分一致。例えば、パターン「.*END$」は任意の文字列に部分的に一致しますが、ENDで終わる文字列のみに完全に一致します。。
- 1 2 2023年からUnicode 15.0規格をサポートします。。
- ↑この実装はオリジナルのUCS-2サポート/機能を使用しているため、認識できる文字数は合計 64,000 文字のみです ( UTF-16の 1,112,064 文字と比較)。2010 年に、マイクロソフトの開発者担当者がこの問題に関するバグ報告に対し「修正しない」と回答しました。。
- ↑バージョン8.30以降。
- ↑部分一致は暗黙的に実行されるため、完全一致が失敗した場合は、matchedLength() を別途呼び出す必要があります。
- ↑ TclにはUTF-8との変換機能が含まれています。
- ↑ wxRegEx は、システムが提供するPOSIXライブラリを使用します。利用できない場合、Unicode モードではHenry Spencerのライブラリを使用します。
参考文献
- ↑ 「はじめに – Hyperscan 5.4.0 ドキュメント」
- ↑ "Regex - OCaml の正規表現"。
- ↑ 「再帰的正規表現 - チュートリアル」。
- ↑ 「UTS #18: Unicode正規表現」。
- ↑ 「ECMA-262、第9版、2018年6月 ECMAScript® 2018言語仕様」。www.ecma -international.org 。 2020年8月4日取得。
外部リンク
- レギュラー表現フレーバー比較– 最も人気のあるレギュラー表現フレーバーの詳細な比較
- 正規表現構文の概要
- オンライン正規表現テスト– Java、JavaScript、.Net、PHP、Python、Rubyに対応
- 正規表現の実装– RE2の著者であるラス・コックスによる一連の記事
- 正規表現エンジン