Java正则特殊字符转义速查表(可直接复制)
一、正则专用方法清单(入参是正则,符号必须\转义)
split()、replaceAll()、matches()、Pattern.compile()、String.replaceFirst()
统一规则:正则元字符前面加 双反斜杠 \
| 原字符 | 正则转义写法(Java字符串) | 说明 |
|---|---|---|
| . | \\. | 任意字符 |
| * | \\* | 匹配0~多 |
| + | \\+ | 匹配1~多 |
| ? | \\? | 匹配0或1 |
| | | `\ | ` |
| ( | \\( | 分组开始 |
| ) | \\) | 分组结束 |
| [ | \\[ | 字符集开头 |
| ] | \\] | 字符集结尾 |
| { | \\{ | 量词开头 |
| } | \\} | 量词结尾 |
| ^ | \\^ | 行开头 |
| $ | \\$ | 行结尾 |
| \ | \\\\ | 反斜杠自身 |
二、无需转义方法(纯文本匹配,原样写字符)
contains()、indexOf()、lastIndexOf()、startsWith()、endsWith()、replace(CharSequence,CharSequence)、replace(char,char)
str.contains("."); //正确
str.replace(".",""); //正确
str.indexOf("+"); //正确
三、万能自动转义工具方法(遇到不确定的分隔符直接调用)
/** 自动把普通字符串转成正则安全字符串 */
public static String escapeRegex(String str){
return Pattern.quote(str);
}
//使用示例:按原生.分割,不用手动写\\.
String[] arr = str.split(escapeRegex("."));
四、高频易错示例
//错误:split(".")会全拆分
str.split("\\.");
//错误:replaceAll(".","")清空所有字符
str.replaceAll("\\.","");