正規表現ツール |
grep |
PowerGREP |
RegexBuddy |
RegexMagic |
一般的なアプリケーション |
EditPad Lite |
EditPad Pro |
言語とライブラリ |
Boost |
Delphi |
GNU (Linux) |
Groovy |
Java |
JavaScript |
.NET |
PCRE (C/C++) |
PCRE2 (C/C++) |
Perl |
PHP |
POSIX |
PowerShell |
Python |
R |
Ruby |
std::regex |
Tcl |
VBScript |
Visual Basic 6 |
wxWidgets |
XML Schema |
Xojo |
XQuery と XPath |
XRegExp |
データベース |
MySQL |
Oracle |
PostgreSQL |
このサイトのその他の情報 |
はじめに |
正規表現クイックスタート |
正規表現チュートリアル |
置換文字列チュートリアル |
アプリケーションと言語 |
正規表現の例 |
正規表現リファレンス |
置換文字列リファレンス |
書籍レビュー |
印刷可能なPDF |
このサイトについて |
RSSフィードとブログ |
Just Great Software (JGsoft) 正規表現エンジンは、この正規表現チュートリアルの著者でもあるJan Goyvaertsによって設計・開発されました。このエンジンは、Just Great Software製品であるPowerGREP (バージョン3以降)、RegexBuddy (バージョン2以降)、RegexMagic (全バージョン) のコアとなっています。また、EditPad Pro (バージョン6以降)、EditPad Lite (バージョン7以降)、AceText (バージョン2以降) の正規表現検索機能もこのエンジンによって実現されています。
このエンジンとその正規表現フレーバーは、PowerGREP、RegexBuddy、RegexMagic向けに特別に開発されました。JGsoftフレーバーは、最も一般的な正規表現フレーバーのすべての機能を組み合わせたものです。Unicodeと幅広いレガシーコードページを完全にサポートしています。PowerGREP (バージョン3以降) とEditPad Pro (バージョン7以降) のエンジンは、ファイルを任意のチャンクに分割することなく、4GBを超えるファイルを処理できます。
RegexBuddyとRegexMagicには、他の多くの正規表現フレーバーの制限とフレーバー固有の機能をシミュレートできるJust Great Softwareエンジンの特殊バージョンがあります。RegexBuddyまたはRegexMagicで正規表現フレーバーを選択すると、すべての機能でそのフレーバーが使用されます。組み込みのgrepでさえもです。
Just Great Softwareエンジンは、他のアプリケーションに組み込むことができるコンポーネントとしては提供されていません。これは、汎用エンジンとしてではなく、Just Great Software製品内で動作するように特別に設計されています。正規表現がコア機能であるPowerGREPやRegexBuddyのようなツールを開発していない限り、開発環境で既に提供されている正規表現フレーバーで十分です。ユーザーのために、アプリケーションが使用する正規表現フレーバーを明確に示してください。そうすれば、ユーザーはこのサイトで詳細を簡単に調べることができます。
PowerGREP 5では、JGsoft正規表現フレーバーのメジャーアップデート版であるJGsoft V2が導入されました。このフレーバーは、RegexBuddy 4とRegexMagic 2でアプリケーションとしてPowerGREP 5を選択した場合にも使用できます。JGsoft V2には、いくつかの重要な新機能が追加されています。また、いくつかの破壊的な変更も含まれています。
JGsoft V2は、.NET正規表現フレーバーのようなバランスグループと、PerlやPCREのような分岐リセットグループをサポートするようになりました。また、JavaやRubyのような[class&&[intersect]]構文を使用した文字クラスの共通部分も新しく追加されました。ネストされた角括弧のペアが必要です。JGsoft V2は、[class&&intersect]構文をサポートしていません。これは、[class&&intersect&&again]のように記述してしまう可能性があり、JavaとRubyでは予期しない動作をするためです。
PerlとPCREでは、テキストを一致から除外することができます。JGsoft V2では後読みが無制限であるため は実際には必要ありませんが、PerlやPCREで正規表現を記述するのに慣れている場合は、JGsoft V2で を使用できるようになりました。
を使用して、後読みの制限を回避するためにPerl、PCRE、Rubyはすべて、正規表現の再帰とサブルーチンをサポートしています。これら3つは、互いに構文をコピーしているため、再帰とサブルーチンを記述する方法は複数あります。しかし、これら3つは互いに一致動作をコピーしていないため、構文は似ていても動作に明らかな違いがあります。JGsoft V2は、再帰とサブルーチン呼び出し用に3種類の構文を提供しています。それぞれの構文は、これら3つのフレーバーのいずれかの動作に従います。PCREと同様に、(?P>name) はキャプチャせず、キャプチャグループを元に戻し、アトミックです。この構文は、アトミックグループの構文との類似性から覚えることができます。PCREとは異なり、JGsoft V2は(?P>1)と(?P>0)もサポートしているため、番号付き呼び出しと再帰に対してこの動作を指定できます。Perlと同様に、(?R), (?1)と(?&name) はキャプチャせず、キャプチャグループを元に戻し、バックトラックを許可します。この構文は、Perlコードの&subroutine();呼び出しで使用されるアンパサンドによって覚えることができます。最後に、Rubyと同様に、\g<0>, \g<1>と\g<name> は、サブルーチン呼び出しの一致をキャプチャし、キャプチャグループを元に戻さず、バックトラックを許可します。この構文は、Rubyの正規表現フレーバーが再帰とサブルーチン呼び出しのための他の構文をサポートしていないという事実によって覚えることができます。
\hは、水平方向の空白文字の新しい省略形文字クラスです。スペース、タブ、および改行と段落区切りを除くすべてのUnicode空白文字が含まれます。\vは、以前は垂直タブに一致するエスケープでした。現在は、\vは垂直方向の空白文字の省略形です。これには、垂直タブ、改行、改ページ、段落区切りが含まれます。\vは、CRとLFを個別に一致させます。\Hと\Vは、これら2つの新しい省略形の否定形です。
\Rは、Unicode改行を含むあらゆる改行に一致する新しい特殊エスケープです。このエスケープの特別な点は、CRLFペアを不可分なものとして扱うことです。\Rの一致試行が文字列内のCRLFペアの前に始まる場合、1つの\RがCRLFペア全体に一致します。\Rは、CRLFペアのCRのみを一致させるためにバックトラックしません。そのため、\Rは単独のCRまたは単独のLFに一致させることができますが、\R{2}は単一のCRLFペアに一致させることはできません。
\lと\uは、\p{Ll}と\p{Lu}の省略形になりました。これらは、Unicodeの小文字または大文字に一致します。これらのトークンは常に大文字と小文字が区別されます。
POSIXクラスは、[[:alpha:]]の表記を使用して、ASCII文字のみに一致します。\p{Alpha}の表記は、Unicode文字にも一致します。[[:d:]], [[:s:]], [[:w:]], [[:l:]]と[[:u:]]は、[[:digit:]], [[:space:]], [[:word:]], [[:lower:]]と[[:upper:]]は、廃止されました。これらは、\d, \s, \w, \lと\u.
\lと\uのASCII専用バージョンとして扱うことができます。XML省略形文字クラスになりました。\cAから\cZは、制御文字エスケープとしてサポートされなくなりました。
8進エスケープは、\o{377}と記述する必要があります。8進数は、\o{0}からから\o{177777}\0377までの範囲です。以前の\377構文はエラーになります。JGsoftフレーバーは、後方参照の構文と混同しやすいため、\0をサポートしたことがありません。もエラーになり、リテラルゼロとは一致しなくなりました。\x00
を使用して、ヌルバイトと一致させます。置換文字列構文は、これを可能にするために**置換文字列条件式**で拡張されました。(?1matched:unmatched)は、最初のキャプチャグループが一致に参加した場合はmatchedを、参加しなかった場合はunmatchedを挿入します。正規表現の条件式と同様に、長さゼロの一致を見つけたキャプチャグループは参加したとみなされます。名前付きキャプチャグループを使用する場合は、(?{name}matched:unmatched)を使用して、置換文字列条件式でそれらを参照できます。ネストされた条件式を含む、置換文字列構文全体を条件式内で使用できます。条件式が置換文字列の末尾にある場合は、括弧を省略できます。置換文字列条件式の構文は、C++ Boostライブラリの構文と同じです。唯一の違いは、Boostは置換文字列内の任意の場所でグループ化に括弧を使用しますが、JGsoft V2は条件式の周囲でのみ括弧を認識することです。こうすることで、リテラルの括弧をエスケープする必要がなくなります。存在しないグループを参照する条件式は、JGsoft V2ではエラーになります。Boostでは、「unmatched」テキストが挿入されます。
この構文を追加した結果、JGsoft V2は\?, \:, \(と\)`\`
| クイックスタート | チュートリアル | ツールとプログラミング言語 | 例 | リファレンス | 書籍レビュー |
| grep | PowerGREP | RegexBuddy | RegexMagic |
| EditPad Lite | EditPad Pro |
| Boost | Delphi | GNU (Linux) | Groovy | Java | JavaScript | .NET | PCRE (C/C++) | PCRE2 (C/C++) | Perl | PHP | POSIX | PowerShell | Python | R | Ruby | std::regex | Tcl | VBScript | Visual Basic 6 | wxWidgets | XML スキーマ | Xojo | XQuery & XPath | XRegExp |
| MySQL | Oracle | PostgreSQL |
ページ URL: https://regular-expressions.dokyumento.jp/jgsoft.html
ページ最終更新日: 2019年11月22日
サイト最終更新日: 2024年3月15日
著作権 © 2003-2024 Jan Goyvaerts. 無断転載禁止。