正则表达式(Regular Expressions)

优质
小牛编辑
128浏览
2023-12-01

正则表达式是用于在文本中查找子字符串的模式。 Groovy本身使用〜“regex”表达式支持正则表达式。 引号中的文字代表比较的表达。

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

def regex = ~'Groovy'

当Groovy运算符=〜在ifwhile语句中显示为谓词(表达式返回布尔值) while (参见第8章),左侧的String操作数与右侧的正则表达式操作数匹配。 因此,以下每个都赋予真值。

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

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

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

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

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

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