Java开发常用正则表达式处理案例总结

[TOC]


1 前言

前一段时间帮公司开发的一套自定义表达式转sql语句的引擎,对于比较规范的表达式处理,大量使用到了正则表达式做匹配,所以这里记录一下常用的方法,因为实际上方法很多,但是这里记录的只是自己常用到的。

2 常用方法

2.1 案例1

这里以下面的字符串为例:

[{EXP}, [1536206035, 1536547988]]
[{EXP}, [1536206035,)]
[{EXP}, (,1536206035]]

这里希望用正则表达式处理的方式拿到{EXP}后面的内容,即上面的[1536206035, 1536547988][1536206035,)(,1536206035]

首先编写正则表达式如下:

public static final String GET_EXP_DATE_RANGE = "^ *\\[ *\\{ *EXP *\\} *, *(.*) *\\]$ *"

正则处理:

Matcher matcher = Pattern.compile(DateRules.GET_EXP_DATE_RANGE).matcher(expression);
if(matcher.find()) {
    String content = matcher.group(1).trim();
}

即可完成处理。

2.2 案例2

有下面的一个自定义布尔表达式:

(1 OR 3) AND 2

现在希望将数字替换为其它想要的字符串,同时也带上原来的数字,即上面的表达式处理之后如下:

(#DELIMITED#1 OR #DELIMITED#3) AND #DELIMITED#2

处理方法如下:

baseBoolExpression = baseBoolExpression.replaceAll("(\\d+)", "#DELIMITED#$0");

可以在Scala的交互式解析器中测试一下(ScalaString就是java.lang.string):

scala> var baseBoolExpression:String = "(1 OR 3) AND 2"
baseBoolExpression: String = (1 OR 3) AND 2

scala> baseBoolExpression = baseBoolExpression.replaceAll("(\\d+)", "#DELIMITED#$0");
baseBoolExpression: String = (#DELIMITED#1 OR #DELIMITED#3) AND #DELIMITED#2

scala> baseBoolExpression
res68: String = (#DELIMITED#1 OR #DELIMITED#3) AND #DELIMITED#2

原文地址:http://blog.51cto.com/xpleaf/2293804

时间: 2024-07-30 05:57:40

Java开发常用正则表达式处理案例总结的相关文章

Java开发常用的在线工具

原文出处: hollischuang(@Hollis_Chuang) 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的.博主偏爱使用在线工具,因为个人觉得这样比较方便.本文就总结了一下我常用的在线工具.欢迎纠正及补充. 我会在我的个人博客(http://www.hollischuang.com)中单独创建一个常用工具页面,把这些工具的链接放到里面,我会持续更新这个页面.不爱保存书签的同学可以直接保存我

[精品] 收集的27个java开发常用工具类.基本满足开发需求

原文:[精品] 收集的27个java开发常用工具类.基本满足开发需求 源代码下载地址:http://www.zuidaima.com/share/1596028005993472.htm 最近从网上收集的java开发常用的工具类,分享给大家.基本满足开发需求.推荐给热爱最代码以及java的牛牛们.   每个类都有注释的,欢迎大家可以下载使用. 字符编码:CharTools, base64:Base64 *.java Md5加密:  MD5*.java 上传:*Uploader* 生成缩略图类:T

Java开发常用环境变量配置

1. JDK变量名:JAVA_HOME变量值:D:\Program Files\Java\jdk1.7.0_25(即JDK的安装路径)配置解析:方便引用.归一原则(%JAVA_HOME%),第三方软件约定. 变量名:Path(该变量名在系统变量中已经存在)变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin配置解析:使系统在任何路径下都可以识别javac,java命令. 变量名:classpath变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib

Java开发常用必备工具下载一定要收藏不然以后不好找

必备下载Windows/Linux/Mac下myeclipse所有版本下载地址最常用的Java开发工具,还有一个eclipse,但是有了myeclipse,开发还会下eclipse吗http://www.webkfa.com/one1/w318.html JDK8下载|JDK1.8下载可选择window版和linux版http://www.webkfa.com/one1/w288.html JDK7下载|JDK1.7下载可选择window版和linux版Oracle甲骨文公司Oracle公司如期

JAVA开发常用工具包

一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车.<Effective Java>的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”.在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API.顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能. 本文总结了日志.JSON解析.单测.XML解析.字节码处理.数据库连接池.集合类.邮件.加密.嵌入式SQL数据库.JDBC故障诊断以及序

28个Java开发常用规范技巧总结

1.类的命名使用驼峰式命名的规范. 例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO. 例如说:UserPO,StudentPO(PO,VO,DTO,等这类名词需要全大写) @Data @Builder public class CustomBodyDTO { private String name; private String idCode; private String status; } 2.如果在模块或者接口,类,方法中使用了设计模式,那么

java开发常用的6种工具

程序员开发者开源数据库Java工具 摘要:对于初入行的Java开发人员来说,寻找合适的工具是困难的,并且是浪费时间的.而今天我们将列出六款Java程序员必备的工具,其中包括Notepad++.XML Marker.SQL Developer.Jad.Eclipse和Keytool. 每一位Java程序员都会有套工具来应对工作上的挑战.多年来,Java程序员使用软件来完成他们的工作.有很多工具对他们是有用的,不过对于初入行的人员来说,寻找合适的工具是困难的,并且是浪费时间的.而今天我们将列出六款J

Java开发常用下载的网址

cygwin国内镜像:http://mirrors.sohu.com/cygwin/ 旧版本的ant下载:http://archive.apache.org/dist/ant/ 旧版本的nutch下载:http://archive.apache.org/dist/nutch/ 旧版本的solr下载:http://archive.apache.org/dist/lucene/solr/ 旧版本的Ecplise下载:http://archive.eclipse.org/eclipse/downloa

Java开发常用技术

一.Web前端技术 HTML:HTML.HTML5.CSS.TCP/IP XML:XML Web脚本:JavaScript.AJAX.jQuery.JSON Serv脚本:JSP.APS.PHP 二.Web后台开发 Java Struts Spring 三.持久层(数据库操作) JDBC Hibernate myBatis