1.正则表达式中的符号含义
. 任意字符
* 出现次数大于等于零
+ 出现次数大于零| “或”的逻辑关系
\ 正则表达式中的转义。java中\也表示转义,所以经常能看到\\连一块,不好看。
() 同数学中小括号的作用
? 出现零次或一次
\d [0,9]
\D 非数字
\s 空白符(空格 制表符 回车 换页 换行)
\S 非空白符
\w 英文字符[a-zA-Z0-9]
\W 非英文字符[^\w] 。 注意^符号在中括号外表示字符串的开头,中括号内表示取反。
$ 一行的结束
^ 一行的起始
[] 表示集合,包含其中的任意一个即可匹配
贪婪与非贪婪
贪婪:一个匹配去匹配尽可能多的字符串,也就是得到的匹配数最少。默认是贪婪的。
非贪婪:得到的匹配数最多,每个匹配的长度最少。在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词。
2.常用类
java.util.regex.
Pattern
正则表达式编译后的表示、
Pattern java.util.regex.Pattern. compile(String regex)
将正则表达式编译成pattern。
java.util.regex. Matcher
代表字符串与正则表达式的匹配结果。
Matcher java.util.regex.Pattern. matcher(CharSequence input)
得到matcher。
String java.util.regex.Matcher. replaceAll(String replacement)
用replacement替代所有匹配。
boolean java.util.regex.Matcher. find()
将当前游标移动到下一个匹配,若后面没有了,返回false。
String java.util.regex.Matcher. group()
返回当前游标所指的匹配到的字符串。
正则表达式编译后的表示、
Pattern java.util.regex.Pattern. compile(String regex)
将正则表达式编译成pattern。
java.util.regex. Matcher
代表字符串与正则表达式的匹配结果。
Matcher java.util.regex.Pattern. matcher(CharSequence input)
得到matcher。
String java.util.regex.Matcher. replaceAll(String replacement)
用replacement替代所有匹配。
boolean java.util.regex.Matcher. find()
将当前游标移动到下一个匹配,若后面没有了,返回false。
String java.util.regex.Matcher. group()
返回当前游标所指的匹配到的字符串。
int java.util.regex.Matcher.
start()
返回当前匹配的下标。
返回当前匹配的下标。
3.例子
(-|\+)?\d+ //可能以+号或-号开始,后面跟的有数字
4.匹配与抠取
要匹配的东西以小括号括起来,搭配matcher.group(i)使用。