Groovy - 正则表达式

正则表达式是一种用于在文本中查找子字符串的模式。 Groovy 使用 ~"regex" 表达式原生支持正则表达式。 引号内的文本表示用于比较的表达式。

例如我们可以创建一个正则表达式对象,如下所示 −

def regex = ~'Groovy'

当 Groovy 运算符 =~ 在 ifwhile 语句(参见第 8 章)中作为谓词(返回布尔值的表达式)出现时,左侧的 String 操作数与 右边的正则表达式操作数。 因此,以下每一项都提供了 true 值。

定义正则表达式时,可以使用以下特殊字符 −

  • 有两个特殊的位置字符用于表示行的开始和结束:插入符号 (∧) 和美元符号 ($)。

  • 正则表达式还可以包含量词。 加号 (+) 表示一次或多次,应用于表达式的前一个元素。 星号 (*) 用于表示零次或多次出现。 问号 (?) 表示零或一次。

  • 元字符 { and } 用于匹配前一个字符的特定数量的实例。

  • 在正则表达式中,句点符号 (.) 可以表示任何字符。 这被描述为通配符。

  • 正则表达式可能包括字符类。 一组字符可以作为包含在元字符 [and] 中的简单字符序列给出,如 [aeiou]。 对于字母或数字范围,您可以使用破折号分隔符,如 [a–z] 或 [a–mA–M]。 字符类的补码由方形球拍中的前导插入符号表示,如 [∧a–z] 并表示除指定字符之外的所有字符。 下面给出了一些正则表达式的例子

'Groovy' =~ 'Groovy' 
'Groovy' =~ 'oo' 
'Groovy' ==~ 'Groovy' 
'Groovy' ==~ 'oo' 
'Groovy' =~ '∧G' 
‘Groovy' =~ 'G$' 
‘Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'