String.matches("");
. 任意字符
\d 数字0-8 “12”.matches("\\d"); false 未加数量词之前都只能匹配一个字符
\s空白字符 \S 非空白字符
\w 单词字符 a-zA-Z0-9 \W 非单词字符
数量词:
字符 | 描述 |
---|---|
* | 匹配前面的子表达式零次或多次。 |
+ | 匹配前面的子表达式一次或多次。 |
? | 匹配前面的子表达式零次或一次。 |
{n} | n 是一个非负整数。匹配确定的 n 次。 |
{n,} | n 是一个非负整数。至少匹配n 次。 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 |
范围词:(没有数量词,只能匹配一个字符)
[^abc] 非abc ;
[a-d[m-p]] a-d或m-p (并集,啰嗦写法)
边界匹配:
字符 | 描述 |
---|---|
^ | 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。 |
$ | 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。 |
\b | 匹配一个单词边界,即字与空格间的位置。 |
\B | 非单词边界匹配。 |
\b 单词的开始或结束,不匹配任何字符
tel.matches("0\\d{2,3}-[1-9]\\d{6,7}");
切割 split();
str.split(" +"); //按空格切割 至少一个空格
str.split("(.)\\1+ "); //正则的内容需被复用,则进行分组() \\1表示第一组的内容,组号从1开始;
((A)(B(C))) 从左开始第一括号:\1 - \4
第一组: ((A)B(C))) 第二组:(A) 第三组: (B(C)) 第四组(C)
替换 replaceAll(String regex ,String content );
str.replaceAll("1[34578]\\d{9}","****");
str.replaceAll("(.)\\1+ ","$1 ");//重叠词变单个单词,在正则方法外使用组内容 需加 $ 组号 ;
查找 Pattern类 正则对象 ; Matcher 匹配器对象;
String reg = "\\b[a-zA-Z]{3}\\b" ;//找三个字母组成的单词
//使用正则对象编译
Pattern p = Pattern.compile(reg);
//产生Matcher对象
Matcher m = p.matcher("要查找的内容");
while(m.find()){
ptint(m.group());
}
//真实的一个点匹配: \\.