JAVA正则表达式中用\\来表示\,以下写法均写为\,编程时请替换成\\。
一.普通字符
字母,数字,汉字,下划线以及没有特殊定义的标点符号都是普通字符。
二.转义字符
\n 换行符 \t制表符
\\ \+ \* \? \^ \[ \] \{ \} 等代表字符本身
\d 代表数字字符 \D 代表非数字字符
\w 代表单词字符(字母,数字,下划线) \W 代表非单词字符
\s 代表空白字符(空格符和下划线) \S 代表非空白字符
. 代表任意字符(除了换行符)
^ 代表行首 $ 代表行尾
\b 代表字符的边界
三.限定符
a* 代表a出现0次或多次(出现次数>=0)
a? 代表a出现0次或1次
a+ 代表a出现1次或多次
a{6} 代表a出现6次
a{2,6} 代表a出现2-6次
a{2,} 代表a出现2次或2次以上
四.运算符
(a|b) 代表匹配a或者b
(ab)|(cd) 代表匹配ab或者cd
五.自定义字符
用[]表示此处匹配的字符为自定义类型
[abc] 代表匹配a或者b或者c
[a-c] 代表匹配a或者b或者c
[a-zA-Z0-9] 代表匹配数字或者字母
六.分组
使用()实现
七.贪婪匹配和懒惰匹配
想要匹配 :
<asdfbvx236>;'12345yrew<djiesjf>
中<>里面的内容
使用<.+> 执行的是贪婪匹配 当匹配到<之后,会把<之后的所有字符全部匹配进去,此时>失去了意义。
如果使用<.+?>执行的是懒惰匹配,当匹配到<之后,会把<之后的所有字符匹配进去,遇到>就结束匹配,符合我们的要求。