从左向右匹配
字符 | 含义 | java举例 |
---|---|---|
^ | 开头 | |
$ | 结尾 | |
. | 单个任意字符 | |
* | 前面任意个字符 | |
? | 0个或一个 | |
+ | 至少一个字符 | |
\d | 匹配数字 | “19\d\d”,匹配1900-1999 |
\D | 匹配非数字 | |
\w | 字母数字下划线 | |
\W | 非字母数字下划线 | |
\s | 空格,tab,制表符 | |
\S | 非空格、tab制表符 | |
\u+十六进制 | 配置非as码 | “a\u548cc”,匹配a和c |
“abc” | 精确匹配 | |
() | 用于分组 | |
[] | 匹配范围 | |
[^] | 不包含这个范围 | |
{n} | 表示个数范围 | {2,3}或{2,}或{2} |
特殊字符 | 需要加\ | |
| | 或者 |
分割字符串:String.split();
搜索字串:Matcher.find();
替换字符串:String.replaceAll();
精确匹配
public static void main(String[] args) {
String str="we are happy";
//精确匹配we
boolean we = str.matches("we");
System.out.println(we);//输出false
}
字符串拆分
String str="we are happy";
//按照指定字符拆分
String[] strArr = str.split("\\s");
System.out.println(Arrays.toString(strArr));//[we, are, happy]
字符串替换
String str="we are happy";
//按照规则进行替换
String strreplace = str.replaceAll("happy", "haha");
System.out.println(strreplace);//we are haha
String str="we are happy";
//定义正则表达式
String regex="happy";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
boolean matches = matcher.matches();
boolean isfind = matcher.find();
if(isfind){
matcher.start();//开始索引
matcher.end();//结束索引
}
//正则表达式匹配 匹配电话号码
Pattern pattern = Pattern.compile("^(\\d{3,4})\\-(\\d{6,8})$");
Matcher matcher = pattern.matcher("010-12345678");
if (matcher.matches()){
String whole = matcher.group(0);
String group1 = matcher.group(1);
String group2 = matcher.group(2);
}
原文:https://www.cnblogs.com/lecy/p/14194054.html