Groovy代码示例 – 正则表达式
正则表达式
正则表达式是一种搜索模式,尤其适用于字符串的搜索。在其他语言中,你可能见到过Regex或者Regexp代表正则表达式,接下来我们将演示groovy中的正则是如何的简单适用。
Groovy支持通过~
符号定义正则。当你使用~
定义正则的时候,相当于java中的java.util.regex.Pattern
对象。这意味着你可以像java代码中那样去使用它。比如:
//使用~定义一个IP地址的正则
def ipAddress = ~/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
//显示正则对象的类名
println ipAddress.class.name // java.util.regex.Pattern
//定义一个正则
def nameRegex = ~'john'
//尝试与"john"字符串匹配
println nameRegex.matcher("john").matches() // true
//定义IP地址的正则
def ipAddressRegex = ~/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
//尝试与127.0.0.1这个IP地址匹配
println ipAddressRegex.matcher("127.0.0.1").matches() // true
正则表达式的高级应用
Groovy可以很方便的创建模式并匹配。例如,假如你需要判断一个字符串是不是以'L'开头并以's'结尾,你可以这样使用:
//定义正则,L开头并以e结尾
def pattern = ~'L....e'
//尝试匹配
println pattern.matcher("Little").matches() // true
你也可以使用isCase()
方法判断模式是否匹配。比如,你只知道字符串的开始和结束字符,你想检查这个字符串是不是与正则表示式相匹配,你可以这样使用:
//定义正则表达式
def isCasePattern = ~/L\w+e/
//判断是否匹配
println isCasePattern.isCase("Little")
//定义一个正则:A开头和字母结尾
def grepPattern = ~/A\w+/
//定义一个列表
def cities = ['Alabama', 'Los Angeles', 'Arizona']
//在list中按照正则表达式查找
println cities.grep(grepPattern) // [Alabama, Arizona]
上面的列表中,Alabama和Arizona都能满足以A开头和字母结尾的正则表示式,因此被查找出来
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/05/06/groovy-code-example-regular-expression/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论