java 正则表达式"[^0-9//.]+"与"[0-9//.]+"分别是什么意思?

public double buildeDouble(String temp){
String[] zr = temp.split("[^0-9//.]+");
String temp1 = null;
for(int z=0;z<zr.length;z++){
if(zr[z].matches("[0-9//.]+")){
temp1 = zr[z];

}
}
if(null != temp1)
return new Double(temp1);

return 0;
}

我主要是不明白//.是什么意思?见过\\.,不知道//.的作用,另.是任意字符,我也知道。有谁能说一下//.的意思?

授之以鱼不如授之以渔

朋友,熟话说求人不如求己,所以这会儿只好先辛苦一下,以下内容可要看好了,保证你今后正则这部分不在求人!

字符
x 字符 x
\\ 反斜线字符
\0n 带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值 0x 的字符 hh
\uhhhh 带有十六进制值 0x 的字符 hhhh
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符

字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

反斜线、转义和引用
反斜线字符 ('\') 用于引用转义构造,如上表所定义的,同时还用于引用其他将被解释为非转义构造的字符。因此,表达式 \\ 与单个反斜线匹配,而 \{ 与左括号匹配。

在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。可以在非字母字符前使用反斜线,不管该字符是否非转义构造的一部分。

根据 Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。例如,当解释为正则表达式时,字符串字面值 "\b" 与单个退格字符匹配,而 "\\b" 与单词边界匹配。字符串字面值 "\(hello\)" 是非法的,将导致编译时错误;要与字符串 (hello) 匹配,必须使用字符串字面值 "\\(hello\\)"。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-27
[^0-9//.]+
匹配数字或“/”或“.”以外的字符一次或一次以上
[0-9//.]+
匹配数字或“/”或“.”一次或一次以上

其中//是在java编译环境中“/”加上转义字符
另外“.”在方括号中表示的就是“.”,其他场合下表示任意可见字符。本回答被提问者采纳
第2个回答  2010-09-11
前一个是指不是0到9以及'.'这个符号,后一个差不多,少了就是取0道9或'.'的字符串,后面的加号就是前面这个中括号里的字符出现1次到N次。
相似回答