groovy中的正则表达式操作符【groovy】
groovy中对于正则表达式的书写进行了简化,同时引入了新的操作符,使得正则表达式使用起来比较方便简单。
对于书写的改进:
比如
assert "\\d" == /\d/
也就是在groovy中/\d/本身也是字符串,我们可以简单地把/看成是字符串中的双引号,因此杠杠中间的内容是不需要进行转义的。
groovy中的正则表达式的核心部分依然采用的是JAVA中的类,Pattern、Matcher等,不过groovy为了简化正则的使用,引入了三个操作符:
查找(find)操作符:=~
匹配(match)操作符:==~
模式(pattern)操作符:~String
我们用一个例子来说明上述操作符的用法。
比如我们有一个字符串:
def s = "She sells sea shells at the sea shore of seychelles"
def matcher = s =~ /s.a/
assert finder instanceof java.util.regex.Matcher
也就是s =~ /s.a/ 的返回结果是Matcher类型。
而如果用
def isMatched = s ==~ /s.a/
上述的返回值是布尔类型,用于判断是否匹配上了。
对于
def pattern = ~/s.a/
上述返回的是Pattern类型。
因此,我们综述一下这三个操作符:
查找(find)操作符:=~ 返回Matcher类型
匹配(match)操作符:==~ 返回boolean类型
模式(pattern)操作符:~String 返回Pattern类型
具体Matcher类、Pattern类有哪些方法可以参考JAVA中的定义。
groovy中的正则表达式操作符【groovy】的更多相关文章
- Groovy中那些神奇注解之InheritConstructors
上一篇:Groovy中那些神奇注解之ToString 写完ToString,本来想今天就写到这了,突然觉得InheritConstructors注解实在也是个神器,写起来也没多少字,还是写了吧. In ...
- Groovy中那些神奇注解之ToString
继续上一篇:Groovy中那些神奇注解之Memoized 这篇就讲讲@groovy.transform.ToString这个注解,这注解太熟悉了,熟悉到让人一看就知道是干吗的,不就是把Bean转在St ...
- Groovy中那些神奇注解之Memoized
临近年关手头比较闲,去看了一下Groovy的官方文档,才发现原来Groovy中带了那么多的注解,很多注解带来的效果,有时候让人感觉“这不是在变魔法吧”. 个人很喜欢Groovy,写不成Ruby,Gro ...
- Groovy中的闭包
Closures(闭包) 本节主要讲groovy中的一个核心语法:closurs,也叫闭包.闭包在groovy中是一个处于代码上下文中的开放的,匿名代码块.它可以访问到其外部的变量或方法. 1. 句法 ...
- Groovy中的面向对象
Groovy中的面向对象 前面说到groovy支持脚本和类,前面一节已将简单说了脚本和类之间的关系,这一节主要介绍一下groovy中类的相关知识,即面向对象相关知识. 1.类型 1.1 原始类型 gr ...
- Groovy中each、find跳出循环
在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each.find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究: ...
- Groovy中String转换Gstring用于动态插值
知识点是Groovy中的模板引擎 GStringTemplateEngine 第一个例子: def binding = [ firstname : "Grace", lastnam ...
- Groovy中的脚本与类
包名 当你在groovy中定义类的时候需要指定包名,这和java中类似不多介绍. 导入 groovy中的导入也跟java类似,有一下五种: 默认导入 groovy默认导入了一下几个包和类: impor ...
- Groovy中的GString
在讨论GString之前,我们先讨论一下Groovy里面的String.在Groovy里面String有 println 'test string' println '''test string''' ...
随机推荐
- jQuery中如何实现多库并存?
多库共存就是“$ ”符号的冲突. 方法一: 利用jQuery的实用函数$.noConflict();这个函数归还$的名称控制权给另一个库,因此可以在页面上使用其他库.这时,我们可以用"jQu ...
- css效果文字多了就...
开发中经常会遇见这样的问题,一段文字或者一段标题过长了,就让超出长度的部分益...替换.具体怎么做的呢?直接上代码: <style> *{ margin: 0; padding: 0; } ...
- Windows Server 2008 R2 报错事件ID:10之WMI报错
问题描述: Details -Event filter with query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHE ...
- nginx 403 forbidden
2018年3月9日14:11:59 总结一下: 1. 查看目录或者文件是否是可读可执行 2. 查看nginx配置的server -> location -> index指令, 看其列出的入 ...
- PHP导出MySQL数据字典 Summer-Mysql-Dic
2017年11月9日09:30:29 用 PHP 写的一个类文件, 用来导出MySQL数据字典 导出表信息; 字段信息, 索引信息 可以导出浏览器适用的样式, 也可以导出word文档 建议上线前用这个 ...
- 转载:Practical UML™: A Hands-On Introduction for Developers
原文:http://edn.embarcadero.com/article/31863 By: Randy Miller Abstract: This tutorial provides a quic ...
- Light OJ 1020
简单推理题: #include<bits/stdc++.h> using namespace std; int main() { int T, n; string Name; cin &g ...
- String类型作为方法的形参
代码: public class TestString { String str = new String("good"); char [] ch = {'a','b','c'}; ...
- ORA-00257 archiver error. 错误的处理方法
archive log 日志已满 方法/步骤 1 SecureCRT登录服务器,切换用户oracle,连接oracle [root@userbeta~]# su - oracle [oracle@us ...
- Android adb from work ---three
转接from work --two 0.查看Android的物理存储空间df adb shell df -h 表示以MB单位查看存储使用情况 1.在Android设备中创建指定大小的文件(也能测试其I ...