在正则表达式中,\ 表示转义符不能单独存在。 要表示字符‘\’ ,就应该写\\ 。 意思是前一个转义符\,转义了后面一个\
而在java中\也是转义符,同上,也应该用\\
匹配:
- public class FanXieGang {
- public staticvoid main(String[] args) {
- String str1 = "\\";
- System.out.println("str1:" + str1);
- String str2 = "\\";
- System.out.println("str2:" + str2);
- Pattern pattern = Pattern.compile(str1 + str1);
- Matcher matcher = pattern.matcher(str2 + "abcdefg");
- while (matcher.find()){//查找符合pattern的字符串
- System.out.println("查找到的:" + matcher.group());
- }
- }
- }
替换:
java反斜杠 和 string.replaceAll要替换反斜杠
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠
例如 str1="aa\bbb"; str2="aa'bbb"; 要想替换成 str1="aa\\bbb";str2="aa\'bbb"; 必须这样替换: str1 = str1.replaceAll("\\\\", "\\\\\\\\"); str2 = str2.replaceAll("'",
\\\\');
原因如下: String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的, \\\\ ,java解析为\\交给正则表达式, 正则表达式再经过一次转换,把\\转换成为\
也就是java里面要用正则来表示一个\. 必须写成4个\ 如果要表示\\,那就要写8个\
所以如果写成: str1 = str1.replaceAll("\\", "\\\\"); 就会报正则表达式的错误。