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开头和字母结尾的正则表示式,因此被查找出来

上一篇 Groovy代码示例 - 闭包closure
下一篇 Groovy代码示例 - 数组的使用
目录
文章列表
1 MyBatis mybatis-generator配置
MyBatis mybatis-generator配置
2
Groovy代码示例 - map
Groovy代码示例 - map
3
ARouter错误Failed resolution of ARouter$$Group
ARouter错误Failed resolution of ARouter$$Group
4
Redis 服务器命令
Redis 服务器命令
5
PHP中文GBK与UTF-8编码互转
PHP中文GBK与UTF-8编码互转
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。