import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class test {
public static void main(String args[]){
File file = new File("d:\\\\\\\\TEMP.txt");
System.out.println(file.getPath());
}
}
这里用了8个“\”也能编译通过,正常的正则不是2个“\”就够了么?这样写没有错么?另外麻烦问下,正则是只有在“”中用么?所有的浏览器都支持正则么?有没有不支持的?谢谢!

解决方案 »

  1.   

    "d:\\\\\\\\TEMP.txt" 这只是字符串,和正则没关系啊
      

  2.   

     如果是奇数个\的话  会是这样的d:\ emp.text
    如果是偶数个\的话  才会是这样d:\emp.text
      

  3.   

    话说,java正则式,跟浏览器有什么关系?有关系的那是javascript的正则表达式吧
      

  4.   


    你就算new File("我爱北京天安门")也能编译过去
      

  5.   

    这个和浏览器解析转义字符规则有关。在java项目中 不支持多个/ 以及 路径的大小写,除非重构拦截器。。
    但是。net项目中 支持多个/ 以及 路径大小写、、
      

  6.   

    有部分\\理解成了转义字符,我记得解析json字符串时,json字符串好像不允许出现\\,要用\\必须得用转移字符,这样写就ok。
      

  7.   

    转义是把它转成ASCII值么?
    你说的是存储层面的问题了。最后按ASCII存还是UTF-8,UTF-16或其他编码方式存看实际情况。
    字符串中有一些特殊字符,比如最常见的"引号,假如你想要存一个有引号的字符串,如"louzhu"weiwu",这时编译就会把第二个引号当成字符串结束符,从而导致剩下的部分编译错误,这时就需要转义字符告诉编译器第二个是字符串的一部分,而不是结束字符:"louzhu\"weiwu",这样就能正确解析了。
    回到问题,当编译器发现\后面跟一个不需要转义的字符时就会发生编译错误。
    楼主明白了吧?