简述
正则表达式是一种用于在文本中查找子字符串的模式。Groovy 使用 ~”regex” 表达式原生支持正则表达式。引号内的文本代表比较表达式。
例如,我们可以创建一个正则表达式对象,如下所示 -
当 Groovy 运算符 =~ 在if和while语句 中作为谓词(返回布尔值的表达式)出现时,左侧的字符串操作数与右侧的正则表达式操作数匹配。因此,以下每一项都提供真值。
定义正则表达式时,可以使用以下特殊字符 -
-
有两个特殊的位置字符用于表示一行的开头和结尾:插入符号 (∧) 和美元符号 ($)。
-
正则表达式还可以包含量词。加号 (+) 表示一次或多次,应用于表达式的前一个元素。星号 (*) 用于表示零次或多次出现。问号 (?) 表示零次或一次。
-
元字符 { 和 } 用于匹配前面字符的特定数量的实例。
-
在正则表达式中,句点符号 (.) 可以表示任何字符。这被描述为通配符。
-
正则表达式可以包含字符类。一组字符可以作为包含在元字符 [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'