正規表現ツール |
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 |
このサイトの続き |
はじめに |
正規表現クイックスタート |
正規表現チュートリアル |
置換文字列チュートリアル |
アプリケーションと言語 |
正規表現の例 |
正規表現リファレンス |
置換文字列リファレンス |
書籍レビュー |
印刷可能な PDF |
このサイトについて |
RSS フィードとブログ |
Groovy は Java に基づいているので、Groovy で Java の正規表現パッケージ を使用することができます。次の行をimport java.util.regex.*Groovy ソースコードの先頭に配置するだけです。正規表現を使用する Java コードは、Groovy コードでも自動的に動作します。
Verbose Java コードを使用して Groovy で正規表現を処理するのは、あまり Groovy っぽくありません。Groovy には、正規表現を使用するコードをより簡潔にするたくさんの言語機能があります。Groovy 固有の構文と通常の Java コードを組み合わせられます。これらはすべてjava.util.regexパッケージに基づいています。これは必ずインポートする必要があります。
Java では文字列スタイルは 1 つだけです。文字列は二重引用符で囲みます。文字列内の二重引用符とバックスラッシュはバックスラッシュでエスケープする必要があります。リテラル正規表現ではかなりの数のバックスラッシュが使われます。
Groovy には 5 つの文字列スタイルがあります。文字列は、1 つの単一引用符、2 つの二重引用符、3 つの単一引用符、3 つの二重引用符で囲むことができます。3 つの単一引用符または二重引用符を使用すると、文字列を複数行に広げることができます。これは、正規表現のフリースペースに便利です。残念ながら、この 4 つの文字列スタイルのすべてで、バックスラッシュをエスケープする必要があります。
5 つ目の文字列スタイルは、特に正規表現用です。文字列はスラッシュで囲み、文字列内のスラッシュ(バックスラッシュではありません)だけをエスケープする必要があります。これは文字列スタイルです。/hello/と"hello"のどちらもjava.lang.Stringのリテラルのインスタンスです。残念ながら、スラッシュで区切られた文字列は複数行にまたがることはできないので、正規表現のフリースペースには使用できません。
文字列を正規表現として実際に使用するには、java.util.regex.Patternクラスをインスタンス化します。そのパターンを文字列に対して実際に使用するには、java.util.regex.Matcherクラスをインスタンス化する必要があります。Groovy では、Java の場合と同様にこれらのクラスを使用します。ただし、Groovy には、これらのインスタンスをはるかに少ない入力で作成できる特別な構文があります。
を作成するにはPatternインスタンスでは、正規表現文字列の前にチルダを置くだけで済みます。文字列には Groovy の 5 つの文字列スタイルのいずれでも使用できます。このパターンを変数に割り当てるときは、代入演算子とチルダの間に空白を挿入してください。
Pattern myRegex = ~/regex/
このやり方で実際にパターンをインスタンス化する機会はほとんどありません。インスタンスが必要な唯一のタイミングはPatternインスタンスは、文字列を分割するべき場合で、その場合はPattern.split()を呼び出す必要があります。正規表現の照合を見つけるか、正規表現で検索と置換を行うには、Matcherインスタンスを使用して、パターンを文字列にバインドする必要があります。Groovy では、=~演算子を使用して正規表現を含むリテラル文字列から直接このインスタンスを作成できます。=と~今回はスペースはありません。
Matcher myMatcher = "subject" =~ /regex/
これは
Matcher myMatcher = Pattern.compile(/regex/).matcher("subject")
の良い略し方です。==~演算子は、正規表現が文字列全体に一致するかどうかをテストする簡単な方法です。myString ==~ /regex/はこれに相当します:myString.matches(/regex/)。部分的な一致を見つけるには、Matcher.
java.util.regex package が提供するすべての機能の詳細な概要が必要な場合は、メラン・ハビビによって書かれ、Apress によって発行された「Java Regular Expressions」を入手することをお勧めします。この本では Groovy がまったく話題にされていませんが、Groovy で使用している java.util.regex package に対する最も詳細なガイドです。Groovy は単にいくつかの構文ショートカットを追加しており、すべてがこの Web ページで説明されています。
「Java Regular Expressions」のレビュー
| クイックスタート | チュートリアル | ツールと言語 | 例 | リファレンス | 書籍レビュー |
| 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/groovy.html
最終更新日時: 2021 年 8 月 24 日
サイト最終更新日時: 2024 年 3 月 15 日
Copyright © 2003-2024 Jan Goyvaerts. All rights reserved.