先前用微软的VisualStudio时,'/'表示其本意,而'\'用来转义,如果想表示'\'字符本身需要用'\\'。正则表达式中则需要用@"\\"或"\\\\"java的网上查了下资料,大部分文章说'/'用来转义,有的说'\'用来转义。最后一篇文章给我启发说windows下用'\'转义,unix和linux下用'/'转义。我自己在eclipse里试了下,写一个正则表达式,发现和VisualStudio里一样。我用的系统是XP。正则表达式用来匹配路径未尾的文件名:
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\\/]+$");意思是如果我把eclipse安装在linux系统下,正则就得写成:
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\//]+$");是这个样子么?
晕啦,求指点
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\\/]+$");意思是如果我把eclipse安装在linux系统下,正则就得写成:
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\//]+$");是这个样子么?
晕啦,求指点
java中File.separator可以获取文件路径分隔符,建议这么来获得,提高可移植性及容错
M Windows下为 "\\"
Linux下位 "/"(这俩个都为一个char,但返回的是一个String)
以输出一段话为例:
需要输出的话:the java say:"hello world!"
双引号在java中是表示字符串的,如果不转义,则无法输出显示,所以需要用到转义符
System.out.print("the java say:\"hello world\"");这样就能输出双引号了
第一,转移字符部分平台,部分系统,是java的jvm的规范,只跟虚拟机有关系,跟操作系统无关。
第二,跟操作系统有关的是文件系统,linux和window的文件系统不一样,他们规范不一样,路径不一样。
第三,转移字符和路径没关系,在什么时候转义都是\,至于为什么有时候要写\\,是因为我们希望输出\说以就是\\。
这么说明白了吗?http://www.happyalaric.com