Groovy - 正则表达式



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

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

def regex = ~'Groovy'

当 Groovy 运算符 =~ 在 **if** 和 **while** 语句中作为谓词(返回布尔值的表达式)出现时(参见第 8 章),左侧的字符串操作数与右侧的正则表达式操作数匹配。因此,以下每个都返回 true。

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

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

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

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

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

  • 正则表达式可以包含字符类。一组字符可以作为包含在元字符 [ 和 ] 中的简单字符序列给出,如 [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'
广告