正则表达式

本文详细介绍了正则表达式的各种元字符、量词、字符边界和预搜索等概念,包括如何匹配数字、单词、边界等,并展示了在Java中的使用方法。通过实例解析了贪婪模式和非贪婪模式的区别,以及如何进行字符串替换。内容涵盖正则表达式的全面知识,是理解和运用正则表达式的重要参考资料。
摘要由CSDN通过智能技术生成

简单转义字符(小写字符、大写字符取反)

\n           	换行符
\t				制表符
\\	*...		\本身
\d				任意数字
\w				任意数字、字母、下划线
\s				空格、制表符、换行符、空白字符
.				小数点匹配任意字符 不包含换行符,包含换行符的为[\s\S]

自定义字符集合

[]					匹配[]中的任意一个字符,除了^-只有除了.以外的简单转义字符有效
[ab5@]				匹配"a","b","5","@"
[^ ab]				匹配除了"a","b"之外的字符
[f-k]				匹配f-k之间的任意一个字符
[^ A-F0-3]			匹配A-F,0-3之外的任意一个字符

量词 修饰匹配次数的特殊字符

{n}			表达式重复n次
{m,n}		表达式至少重复m次,最多重复n次
{m,}		表达式至少重复m次
?			匹配表达式0次或者1次,相当于{0,1}
+			表达式至少出现1次,相当于{1,}
*			表达式不出现或出现任意次,相当于{0,}
贪婪模式(默认) : 当匹配{3,6}的时候,默认先匹配6个字符,选最多
非贪婪模式(修饰匹配次数的特殊字符后加 "?" ps:"\d{3,6}?" ) : 优先匹配最少

\d{6}		任意连续6个的数字
{\d\d}{6}	任意6个连续的两个数字,一共12个
a\d?b		匹配ab或者a2b
a\d+b		匹配a2b或者a22222b...
a\d*b		匹配ab或者a2b或者a2222b...

字符边界,匹配符合条件的位置(不是字符)

概念:0宽度,是位置不是字符
^		匹配与字符串开始的地方
$		匹配与字符串结束的地方
\b		匹配一个单词的边界,左右不全是\w(字母数字下划线)

^i		匹配整个字符串开始的地方
i$		匹配整个字符串结束的地方
what\b	匹配单词what结束的位置

单行模式与多行模式	^Ai  \Z

选择符和分组

|				匹配左右两边“或”关系
()				捕获组,对括号内进行一个整体且进行编号从1,2,3开始
(?:[a-z])		非捕获组,抵消()带来的副作用,不保存在内存中
\nnn			反向引用,对分组已捕获的字符串进行引用

预搜索(零宽断言)

(?=exp)		断言自身出现的位置的后面匹配表达式exp
(?<=exp)	断言自身出现的位置的前面能匹配表达式exp
(?!exp)		断言此位置的后面不能匹配表达式exp
(?<!exp)	断言此位置的前面不能匹配表达式exp

ps:
[a-z]+(?=ing)	匹配ing前面的a-z字符
[a-z]+(?=\d+)	匹配任意数字前的a-z字符

JAVA中的使用

String.replaceAll("正则表达式","替换的");

Patter p = Pattern.compile("正则表达式");
Matcher m = p.matcher("字符串");
boolean b = m.matches(); //尝试整个序列与改表达式匹配
m.find();				//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值