Groovy (正则表达式)
正则表达式是用于在文本中查找子字符串的模式。 Groovy 使用 ~"regex" 表达式本地支持正则表达式。引号中包含的文本表示用于比较的表达式。
例如,我们可以创建一个正则表达式对象,如下所示 -
def regex = ~'Groovy'
当 Groovy 运算符=〜在 if 和 while 语句(见第8章)中作为谓词(返回布尔值的表达式)出现时,左侧的 String 操作数与右侧的正则表达式操作数匹配。因此,以下每个都传递值 true。
当定义正则表达式时,可以使用以下特殊字符
- 有两个特殊的位置字符用于表示一行的开始和结束:caret(∧)和美元符号($)。
- 正则表达式也可以包括量词。加号(+)表示一次或多次,应用于表达式的前一个元素。星号(*)用于表示零个或多个出现。问号(?)表示零或一次。
- 元字符{和}用于匹配前一个字符的特定数量的实例。
- 在正则表达式中,句点符号(.)可以表示任何字符。这被描述为通配符。
- 正则表达式可以包括字符类。一组字符可以作为简单的字符序列,包含在元字符[和]中,如[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'