Groovy正则表达式复杂逻辑判断实例
下面的两个pattern(p1和p2)分别代表了(A or B) and (C or D)和(A and B) or (C and D)的跨行匹配结果,当然还可以用正则表达式构建更复杂的pattern,但这个实例证明了Groovy具备跨行匹配复杂逻辑表达式的能力。
值得注意的是,多行匹配文本时需要在匹配字符串前加“(?ms)”。
该实例同时演示了Groovy闭包的使用方法。
源代码
msg1 = '''one two three four
five six'''
msg2 = '''Jan Feb Mar
Apr May Jun'''
msg3 = '''one two three
Apr May Jun'''
msg4 = '''Jan Feb Mar
four five six'''
p1 = / (?ms) (two|Feb).*(five|May)/
p2 = / (?ms) (two.five)|(Feb.May)/
msgs = [msg1, msg2, msg3, msg4]
patterns = [p1, p2]
patterns.each { pattern->
println 'pattern is: '+pattern
msgs.each { msg->
println 'msg is: '+msg
println 'match result is:'
matcher = msg =~ pattern
if (matcher)
println "true"
else
println "false"
println '---'
}
println '==='
}
运行结果
pattern is: (?ms)(two|Feb).*(five|May)
msg is: one two three four
five six
match result is:
true
msg is: Jan Feb Mar
Apr May Jun
match result is:
true
msg is: one two three
Apr May Jun
match result is:
true
msg is: Jan Feb Mar
four five six
match result is:
true
===
pattern is: (?ms)(two.five)|(Feb.May)
msg is: one two three four
five six
match result is:
true
msg is: Jan Feb Mar
Apr May Jun
match result is:
true
msg is: one two three
Apr May Jun
match result is:
false
msg is: Jan Feb Mar
four five six
match result is:
false
===
Groovy正则表达式复杂逻辑判断实例的更多相关文章
- JavaScript 正则表达式的应用实例
都是自己实例记录,不断更新中.... 1.字符串找出所有匹配的邮箱并替换 <html> <body> <script type="text/javascript ...
- groovy regex groups(groovy正则表达式组)
先看一个java正则表达式的例子. import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestM ...
- [转]使用DW正则表达式批量替换实例介绍
原文地址:http://www.jb51.net/Dreamweaver/86329.html 网站优化过程中,经常会遇到很多要批量修改的东西,一个个修改,明显效率低下.本文是使用DW正则表达式批量替 ...
- PHP正则表达式笔记和实例
转自: https://www.cnblogs.com/yafei236/p/4168290.html 本文主要介绍如何在PHP使用正则表达式,并附带几个实例. 这两天工作用到了正则表达式,发现自己 ...
- Java和Groovy脚本互相调用实例
本实例是GODU动态脚本的一个技术简化版,演示了java调groovy,groovy又调java的运行过程. 测试用例: package com.boco.godu.integration; impo ...
- Groovy安装与入门实例
摘自: http://blog.csdn.net/dc_726/article/details/8576205 1 Groovy是什么? 来看下官网的介绍:http://groovy.codehaus ...
- python正则表达式+正则大量实例
正则表达式 正则表达式内部函数详解http://www.runoob.com/python/python-reg-expressions.html 正则表达式是一个特殊的字符序列,它能帮助你方便的检查 ...
- python正则表达式应用优化实例
1.问题出现 需要提取一份xml文件中参数名和参数值,格式如下: <p name="actOlLaPdcch">true</p> 我们需要的字段如上,红色部 ...
- JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取
前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...
随机推荐
- 案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/118685521 长期持续带来更多项目与技术分享 ...
- Springboot:Springboot+Swagger2集成服务
Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务 ...
- TCP和UDP知识总结
1.TCP粘包:Tcp是面向连接.流式传送的,没有明确的边界定义.他有一个缓冲区,每过一段时间或者缓存满了就发送出去,造成一次发送的数据可能是多个包或者包的一部分,这就是发送端的粘包.接收端的粘包指应 ...
- 【Spring】Spring中的循环依赖及解决
什么是循环依赖? 就是A对象依赖了B对象,B对象依赖了A对象. 比如: // A依赖了B class A{ public B b; } // B依赖了A class B{ public A a; } ...
- python 14篇 写日志
import sys from loguru import logger # 日志级别: debug 调试信息打印日志比较详细,级别最低 # info 正常的提示信息,级别较低 # waring 警告 ...
- python 09篇 操作Excel
一.往Excel中写数据 使用pip install xlwt安装xlwt模块,用xlwt模块进行对Excel进行写数据. import xlwt # book = xlwt.Workbook() # ...
- Linux- RPM与yum软件包安装
Linux安装及管理程序一.Linux应用程序基础1)应用程序与系统命令的关系2)典型应用程序的目录结构3)常见的软件包封装类型二.RPM包管理工具① RPM软件包管理器Red-Hat Package ...
- 使用 VSCode 搭建 Flutter环境
概述 编辑器使用 vscode,不再安装 Android Studio. 安装 Git 点击这里 下载并安装 Git 配置 Java 环境 下载和安装 JDK 点击下载 Java SE Develop ...
- [刘阳Java]_Web前端入门级练习_迅雷官宣网设计
也有一段时间没有写一些技术专题文章,今天给大家来几篇Web前端入门级练习的文章.主讲<迅雷官宣网>的设计,相信大家平时也用过迅雷这个下载工具,所以分享的这篇技术大家在一定程序会感兴趣. 先 ...
- 【译】.NET 对象分配工具
随着 Visual Studio 16.10 的发布,性能分析器又有了一个新的分析引擎,.NET 对象分配工具是第一个加入的工具.这为该工具提供了一些新特性,并显著提高了 perf 性能.在你的 C# ...