📜  Groovy-正则表达式(1)

📅  最后修改于: 2023-12-03 15:15:26.596000             🧑  作者: Mango

Groovy 正则表达式

Groovy 是一种基于 JVM 的动态语言,与 Java 紧密关联,并且包含了许多便捷的特性,例如闭包、DSL 支持等。在字符串操作方面,Groovy 也提供了丰富的功能,其中包括对正则表达式的支持。

基本语法

Groovy 中正则表达式的语法基本上和 Java 相同,可以使用字符串的 =~ 操作符进行匹配,例如:

def pattern = ~/hello/
assert "hello world" =~ pattern

与 Java 不同的是,Groovy 还提供了更为精简的语法,例如:

def pattern = /hello/
assert "hello world" =~ pattern
选项

与其他语言一样,Groovy 中的正则表达式也支持许多选项,包括:

  • i:忽略大小写
  • m:多行模式
  • s:点号可以匹配换行符

这些选项可以以 / 后面的方式指定,例如:

def pattern = /hello(?i)/
assert "Hello world" =~ pattern
捕获

除了简单的匹配,Groovy 中的正则表达式还支持捕获,使用 () 包围需要捕获的内容,例如:

def pattern = /hello\s+(\w+)/
assert "hello world" =~ pattern
assert pattern.matcher("hello groovy").group(1) == "groovy"
边界和量词

Groovy 中的正则表达式同样支持各种边界和量词,例如:

  • ^:匹配行首
  • $:匹配行尾
  • *:匹配 0 次或多次
  • +:匹配 1 次或多次
  • ?:匹配 0 次或 1 次
  • {m}:匹配 m 次
  • {m,n}:匹配 m 到 n 次

例如,要匹配一个全是数字的字符串,可以使用:

def pattern = /^\d+$/
assert "1234" =~ pattern
assert "12a34" !~ pattern
替换

除了匹配之外,Groovy 中的正则表达式还支持替换,使用字符串的 replaceAll() 方法,例如:

def pattern = /hello\s+(\w+)/
assert "hello groovy" =~ pattern
assert "hello groovy".replaceAll(pattern, "hi $1") == "hi groovy"
总结

Groovy 中的正则表达式基本上和 Java 相同,但是提供了更为精简的语法,并且支持捕获、替换等功能。在字符串操作方面,它提供了方便、简洁的解决方案,让程序员能够更加轻松地处理各种字符串操作。