正規表示式工具 |
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 Feed 和部落格 |
由於 Groovy 是基於 Java,因此您可以在 Groovy 中使用 Java 的正規表示式套件。只要在 Groovy 原始碼的最上方加上 import java.util.regex.*。使用正規表示式的任何 Java 程式碼也會自動在您的 Groovy 程式碼中運作。
使用冗長的 Java 程式碼在 Groovy 中處理正規表示式並不會很 groovy。Groovy 有一堆語言功能,可以讓使用正規表示式的程式碼簡潔許多。您可以將 Groovy 專屬語法與一般的 Java 程式碼混合使用。所有內容都基於 java.util.regex 套件,您無論如何都需要匯入這個套件。
Java 只有單一字串樣式。字串置於雙引號之間。字串中的雙引號和反斜線必須以反斜線作為跳脫字元。這會在正規表示式文字中產生一大堆反斜線。
Groovy 有五種字串樣式。字串可以置於單引號、雙引號、三重單引號和三重雙引號之間。使用三重單引號或雙引號可以讓字串跨越多行,這對於自由間距的正規表示式非常方便。遺憾的是,這四種字串樣式都需要反斜線作為跳脫字元。
第五種字串樣式特別提供給正規表示式。字串置於正斜線之間,且字串中的正斜線(而非反斜線)才需要跳脫。這的確是一種字串樣式。/hello/ 和 "hello" 都是 java.lang.String 的字面實例。遺憾的是,以正斜線分隔的字串無法跨行,因此無法將其用於自由間距的正規表示式。
若要實際將字串用作正規表示式,您需要實例化 java.util.regex.Pattern 類別。若要實際對字串使用該模式,您需要實例化 java.util.regex.Matcher 類別。您在 Groovy 中使用這些類別的方式與在 Java 中相同。但 Groovy 提供了一些特殊語法,讓您可以用更少的輸入建立這些實例。
若要建立 Pattern 實例,只需在包含正規表示式的字串前面加上波浪號。字串可以使用 Groovy 的五種字串樣式中的任何一種。將此模式指派給變數時,請務必在指定運算子與波浪號之間留一個空格。
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 套件提供的所有功能,您可能想要取得 Mehran Habibi 編寫、Apress 出版的「Java Regular Expressions」一書。儘管這本書完全沒有提到 Groovy,但它是 java.util.regex 套件最詳細的指南,而這正是您在 Groovy 中使用的套件。Groovy 僅增加了一些語法捷徑,這些捷徑都已在此網頁中說明。
我對 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 Schema | Xojo | XQuery & XPath | XRegExp |
| MySQL | Oracle | PostgreSQL |
頁面網址:https://regular-expressions.dev.org.tw/groovy.html
頁面最後更新:2021 年 8 月 24 日
網站最後更新:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。