正则表达式是一个比较好用的工具,但其比较难编写,特别是对于新手来说,更是觉得难写;
平时对一些常用的正则做个记录也是个不错的选择,需要用的时候直接拿来用;
下边的匹配在java代码中通常会需要\\
来对\
进行转义,比如\w
在java代码中应该需要写成\\w
比较常用的语法及demo
元字符
.
:匹配除换行符以外的任意字符\w
:匹配字母数字下划线\s
:匹配空白符\d
:匹配数字\b
:匹配单词的开始或结束^
:匹配字符串的开始$
:匹配字符串的结束\W
:匹配非字母数字下划线\S
:匹配非空白符\D
:匹配非数字\B
:匹配非单词开头或结束的位置[^x]
匹配除了x外的字符[^abc]
:匹配除了abc外的字符
限定符(数量限定)
*
:匹配0次或更多次+
:匹配一次或更多次?
:匹配0次货一次{n}
:匹配n次{n,}
:匹配n次或更多次{n,m}
:匹配n到m次
其他匹配
[abc]*
:匹配字符为a或b或c- 或条件:
\(0\d{2}\)\d{8}|0\d{2}-?\d{8}
,可以匹配:(010)92832482
或者010-92832482
这两种格式的 ()
:括号来表示分组,如((010)|(020))+
能匹配010010...
或020020...
或者010020...
或者020010...
组号
:\b(\w+)\b\s+\1\1\b
常用正则
*