何白白

我的java开发记录


Project maintained by hjx601496320 Hosted on GitHub Pages — Theme by mattgraham

正则简单使用说明

怎么使用正则

1判断一个String是否符合一个正则

String content = 一个字符串;
String pattern = 正则表达式;
boolean isMatch = Pattern.matches(pattern, content);

2用正则进行查找

 Pattern pattern = Pattern.compile(正则表达式);
 Matcher matcher = pattern.matcher("文字内容");
 while (matcher.find()) {
 	//查找到的内容 group() 查找正则中的组, 每一对括号为一组
 	//例如  "policyNo>(P\\w+)<", group(1)查到的就是 P\\w+ 匹配到的内容
 	//例如  "policyNo>(P\\w+)<>(P\\[0-9]+)", group(2)查到的就是 P\\[0-9]+ 匹配到的内容
 	String group = matcher.group(1);
 }

正则语法

怎么写?

格式: 位置 匹配字符串 重复次数(不写为一次)

元字符

匹配字符

.   匹配除换行符以外的任意字符
\w  匹配字母或数字或汉字and下划线, 等效[A-Za-z0-9_]
\s  匹配任意的空白符
\d  匹配数字
=============反义==============
\W  匹配任意不是字母, 数字, 下划线, 汉字的字符. 等效[^A-Za-z0-9_]
\S  匹配任意不是空白符的字符
\D  匹配任意非数字的字符

匹配位置

\b  单词的开头或结尾, 也就是单词的分界处
^   匹配字符串的开始
$   匹配字符串的结束
\G  上一个匹配的结尾(本次匹配开始)
\A  字符串开头(类似^, 但不受处理多行选项的影响)
\Z  字符串结尾或行尾(不受处理多行选项的影响)
\z  字符串结尾(类似$, 但不受处理多行选项的影响)

重复

*       重复零次或更多次
+       重复一次或更多次
?       重复零次或一次
{n}     重复n次
{n,}    重复n次或更多次
{n,m}   重复n到m次

匹配一个范围

[]      表示要匹配的范围
[0-9]   匹配0~9的数字,同\d
[a-z]   匹配所有小写字母
[a-zA-Z]        匹配所有字母
[a-z0-9A-Z_]    等同于\w
[123]           匹配1或者2或者3
(aa|bb|cc)      匹配aa或者bb或者cc

字符的转义

\   将下一字符标记为特殊字符、文本、反向引用或八进制转义符。
例如:"n"匹配字符"n"。"\n"匹配换行符。序列"\\\\"匹配"\","\\("匹配"("。
需要转义的字符:$, (, ), *, +, ., [, ], ?, \, ^, {, }, |

常见的正则

email: 
^\w+(\.\w+)*@\w+(\.\w+)+$

2位小数数字:
\d+\.\d{2}$

url:
^(https?://)?(\w+\.)+[a-zA-Z]+$