java 正则匹配空格字符串 正则表达式截取字符串
java 正则匹配空格字符串 正则表达式截取字符串
需求:从一堆sql中取出某些特定字符串:
比如配置的sql语句为:"company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
我要拿出所有的以@开头的作为变量,并且去重,则如下玩:
ps:其中正则匹配空格是 “\s+”
public class Test {
public static void main(String[] args) {
//String input = "update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
String input = "company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
String patternStr = "(\\s*=\\s*)|(\\s*,\\s*)|(\\s*;\\s*)|(\\s+)";
Pattern pattern = Pattern.compile(patternStr);
String[] dataArr = pattern.split(input);
Set<String> set = new TreeSet<String>();
for (String str : dataArr) {
System.out.println(str);
if (str.startsWith("@")) {
str = str.replaceAll("@", "");
set.add(str);
}
}
System.out.println(set);
}
[aa, bb, cc, cd, pid, ttt]输出如下:
截图如下:
后来又优化了一下,既然是找出以@开头的,那么再换一个正则:
public class Tst {
public static void main(String[] args) {
//String input = "update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
String input = "company_code = $csc223@cc and project_id = @pid ; update t set a = @aa,b=@cd,c=@cd,ttt=@ttt;update t2 set d=@bb";
String regex = "@\\w+\\s?";
//regex = "(\\s*=\\s*)|(\\s*,\\s*)|(\\s*;\\s*)|(\\s+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
Set<String> set = new TreeSet<String>();
while(matcher.find()){
set.add(matcher.group());
}
System.out.println(set);
}
}
2014年11月26日 16:50:31
2015年 2月10日 23:43:45
落雨
394263788
java 正则匹配空格字符串 正则表达式截取字符串的更多相关文章
- Java中用正则表达式截取字符串中
Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串.比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市.正则表达式为() A ".*?(?=\\()" ...
- 通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性
一个通用且常用的Java正则匹配工具,用以检查邮箱名.电话号码.用户密码.邮政编码等合法性. import java.util.regex.Matcher; import java.util.rege ...
- Swift3.0语言教程分割字符串与截取字符串
Swift3.0语言教程分割字符串与截取字符串 Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组.在NSString中有两个分割字 ...
- [JavaScript] 根据字符串宽度截取字符串
/** * 根据字符串宽度截取字符串 * @param desc 原始字符串 * @param width 该显示的宽度 * @param fontsize 字体大小 12px * @returns ...
- 关于JAVA正则匹配空白字符的问题(全角空格与半角空格)
今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下 \s 不支持全角 1.& ...
- Java机试题目_怎样截取字符串
面试题1 怎样截取字符串 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC"4,应该截为" ...
- 关于JAVA正则匹配空白字符的问题
今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下 \s 不支持全角 1.& ...
- java正则匹配
java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6import java.util.regex.Matche ...
- php截取字符串|php截取字符串前几位|php截取中文字符串
转 截取字符串专题:php截取字符串函数,php 字符串长度,php截取字符串前几位 PHP截取中文字符串(mb_substr)和获取中文 => http://www.q3060.com/lis ...
随机推荐
- Chrome系列 Failed to load resource: net::ERR_CACHE_MISS
在IE/FF下没有该错误提示,但在Chrome下命令行出现如下错误信息: Failed to load resource: net::ERR_CACHE_MISS 该问题是Chrome浏览器开发工具的 ...
- JAVA:变量,数据类型,运算符,流程控制(简介)<1>
一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...
- 8个3D视觉效果的HTML5动画欣赏
现在的网页中应用了越来越多的3D应用,特别是基于HTML5 Canvas的动画特效,让用户有一种非常震撼的视觉体验.本文收集了8个非常炫酷的3D视觉效果的HTML5动画,都有源代码分享,你可以学习你感 ...
- 在别的地方看的<<给程序员介绍一些C++开源库>>,记录给大家共同学习
首先说明这篇文章不是出自我手,大家共同学习. 引用地址:http://oss.org.cn/?action-viewnews-itemid-61998. C++开源库,欢迎补充. C++在“商业应用” ...
- PSP编程初探 Hello World
自己有一台PSP2000,玩了这么长时间的游戏,所以打算去探究一下PSP这个平台的程序的构建方式. 在网上搜了很多资料,感觉能用上的不多,毕竟这太小众了,通过自己的探索,总结了一下. 先搭建MinGW ...
- javaScript 连续子数列最大和
<!DOCTYPE html> <html> <head> <title></title> <meta charset=utf-8&g ...
- <Linux下FTP服务的搭建>
默认安装好ftp软件包匿名用户是可以下载的.匿名以后可以上传:anon_upload_enable=YES# getsebool -a | grep ftpallow_ftpd_anon_write ...
- APUE习题8.7
看书的时候发现这个习题没有答案,于是就想把自己做的结果贴上来,和大家分享分享! 首先把题目贴上来吧: /*********** 8.10节中提及POSIX.1要求在调用exec时关闭打开的目录流.按下 ...
- Nginx +keepalived
Nginx +keepalived 配置高可用的Nginx 准备环境: 节点node17,node18 lftp 172.16.0.1:/pub/Sources/6.x86_64/nginx ...
- (转载)delphi文件流
delphi文件流 [复制链接] 在Delphi中,所有流对象的基类为TStream类,其中定义了所有流的共同属性和方法. TStream类中定义的属性介绍如下: 1.Size: 此属性以字节返回流中 ...