Groovy - 正则表达式


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

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

def regex = ~'Groovy'

当 Groovy 运算符 =~ 作为ifwhile语句中的谓词(返回布尔值的表达式)出现时(请参阅第 8 章),左侧的字符串操作数将与右侧的正则表达式操作数相匹配。因此,以下每项都传递 true 值。

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

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

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

  • 元字符 { 和 } 用于匹配前面字符的特定数量的实例。

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

  • 正则表达式可以包括字符类。一组字符可以作为包含在元字符 [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'