文档章节

Java正则表达式及案例

林浪痕
 林浪痕
发布于 2017/05/27 22:32
字数 803
阅读 13
收藏 1

1、正则表达式大全

正则表达式

[]   表示一个字符
[abc]   表示 a、b、c 中任意一个字符
[^abc]   除了 a、b、c 的任意一个字符
[a-z]   表示 a 到 z 中的任意一个字符
[a-zA-Z0-9_]   表示 a 到 z、A 到 Z、0 到 9 以及下滑线中的任意一个字符
[a-z&&[^bc]]  表示 a 到 z 中除了 b、c 之外的任意一个字符,&&表示“与”的关系
表示任意一个字符
\d  任意一个数字字符,相当于[0-9]
\D  任意一个非数字字符,相当于[^0-9]
\s  空白字符,相当于[\t\n\f\r\x0B]
\S  非空白字符,相当于[^\s]
\w  任意一个单词字符,相当于[a-zA-Z0-9_]
\W   任意一个非单词字符,相当于[^\w]
^ 表示字符串必须以其后面约束的内容开始
表示字符串必须以其前面约束的内容结尾
? 表示前面的内容出现 0 到 1 次
表示前面的内容出现 0 到多次
表示前面的内容出现 1 到多次
{n} 表示前面的字符重复 n 次
{n,}  表示前面的字符至少重复 n 次
{n,m}   表示前面的字符至少重复 n 次,并且小于 m 次 X>=n && X<m

 

注意:

       在正则表达式中我们想描述一个“. ” ,但“. ”在正则表达式中有特殊含义,他代表任意字符,所以想要正确描述“. ”的愿义就要写成“\. ”但是我们用 java 字符串去描述正则表达式的时候,因为“. ”在 java字符串中没有特殊意义, 所以 java 认为我们书写 String str="\. "是有语法错误的,因为“. ”不需要转义,这就产生了冲突。解决办法:我们实际的目的很简单,就是要让 java 的字符串描述"\."又因为在java 中"\"是有特殊含义的,代表转义字符我们只需要将"\"转义为单纯的斜杠,
即可描述"\."了所以我们用 java 描述“\. ”的正确写法是 String str="\\."。

总之,要想描述一个“. ”,表达式可写成String regex = "\\." 或 String regex = "[.]"。

 

2、小案例

        //要验证的字符串
		String str = "广东.广州";
		//表达式
		String regex = "^\\W{1,}[.]\\W{1,}$";
		//方法一:逐步进行
		//1.将给定的正则表达式编译到模式中。 --编译表达式
		Pattern pattern = Pattern.compile(regex);
		//2.创建匹配给定输入与此模式的匹配器。--创建匹配器
		Matcher matcher = pattern.matcher(str);
		/*
		 * 3.字符与表达式匹配
		 * matcher.matches() 尝试将整个区域与模式匹配。
		 */
		if(matcher.matches()){
			System.out.println("方法一匹配成功!");
		}
		//方法二:一步到位
		//编译给定正则表达式并尝试将给定输入与其匹配。
		boolean b = Pattern.matches(regex, str);
		if(b){
			System.out.println("方法二匹配成功!");
		}

正则表达式加^ $与不加的区别:加^$的话就代表把整个要匹配的字符串当成一个整体做一次匹配,而不加则一个字符串可以匹配多次,只能代表这个字符串中有符合条件的并不代表改字符串符合条件。

记录代码碎片,厚积薄发,加油!

© 著作权归作者所有

林浪痕
粉丝 2
博文 4
码字总数 2610
作品 0
桂林
高级程序员
私信 提问
java正则表达式对字符串的操作

学习java正则表达式的都知道,它的重要性;但同时也了解它的难度和复杂性。所以为了加深我们对它的了解。我举了几个例子: 例子1、 查找以Java开头,任意结尾的字符串 Pattern pattern = Patt...

goqin
2012/06/29
0
0
java.util.regex Pattern 正则

/**String 中 replaceAll(),matches(),split() 等方法,都是调用Pattern中的方法。学习了,瞬间觉得Pattern强大了 public String replaceAll(String regex, String replacement) {return Pat......

happycode
2014/04/02
0
1
【Scala】Scala高级使用技巧之二

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/82111814 1、重写field的提前定义 默认情况下,如果父类中的构造函数代码,用...

魏晓蕾
2018/08/27
0
0
Java 正则表达式功能及应用

正则表达式,就是用某种模式去匹配一类字符串的一个公式,正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,不管是...

浮躁的码农
2015/07/29
0
0
js和java中正则表达式的易混淆点

js中正则表达式的使用 对表单中的值进行正则表达式匹配一般有两种方法: var reg = new RegExp(regStr); reg.test(value); 如下: var reg = new RegExp(“\d{3}”); reg.test(“abc123def”...

绝影jy
2014/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot 整合redis

springboot整合redis官方是有文档的: 英文看不懂可以翻译,代码应该看得懂, 这个是自动注入的。当然也可以xml注入,手动配置。 整合步骤: pom文件: <!-- spring boot web --> ...

jason_kiss
11分钟前
0
0
手机耗电问题,大部分是没有正确使用这个“锁”

当安卓设备闲置时,设备很快会进入休眠状态,以达到省电和减少CPU占用的目的。但有些应用在手机灭屏甚至系统休眠时,依然频繁占用CPU处理事件或唤醒屏幕提示用户消息,这类行为会导致手机耗电...

安卓绿色联盟
13分钟前
0
0
UI 设计中的渐变

>**简评:**渐变是通过两种或多种不同的色彩来绘制一个元素,同时在颜色的交界处进行衰减变化的一种设计。从拟物到扁平再到渐变,人们慢慢发现它能创造出从未有过的一种色彩感觉 —— 独特、...

极光推送
18分钟前
0
0
powerdesigner name 转注释vb脚本

Option Explicit ValidationMode = True InteractiveMode = im_BatchDim mdl ' the current model' get the current active model Set mdl = ......

zhu97
23分钟前
0
0
V2Ray的安装与使用

1 1. bash <(curl -s -L https://git.io/v2ray.sh)yum update -y && yum install curl -y安装好 curl 之后就能安装脚本了输入快捷管理命令v2ray后,开始进行v2ray服务端配置...

吕湘颖
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部