以下代码,
String str1 = "1234\\q\23";
String str2 = "1234\\q";
str1 = str1.replaceFirst( str2,"");执行的时候为什么会出异常呢!
java.util.regex.PatternSyntaxException: Illegal/unsupported escape squence near index 5

解决方案 »

  1.   

    首先str1的\23没有意义,可能你需要的是\\23
    str2的正则表达式不正确,\\q没有意义不被支持,而如\\d则可以,建议看正则表达式的知识
    如果你想把"1234\\q\23"替换为"\23"
    把str1改为"1234\\q\\23"
    把str2改为"1234\\\\."就可以
      

  2.   

    是这样的,我从其他地方读入路径1 str1 : C:\1234\q
    路径2 str2:C:\1234\
    想替换掉C:\1234\,得到q该怎么处理呢
      

  3.   

    package com.mmm.test;public class Filter {
    public String caster(){

    String str2 = "1234\\pq";
    String str[] = new String[str2.length()];

    String path = "";
    int len = str2.length()-1;
    for(int i=0;i<str2.length();i++){

    if(str2.charAt(len)=='\\'){

    for(int j=len;j>=0;j--){
    if(str[j]!=null){
    path += str[j];
    }
    }
    return path;
    }
    else{
    str[i] = String.valueOf(str2.charAt(len));
    len--;
    }
    }
    return path;
    }
    public static void main(String args[]){

    System.out.println(new Filter().caster());
    }}已测试通过