什么是[^ \\ d]?如何替换所有(" [^ \\ d]","");工作中?

时间:2015-10-10 12:09:51

标签: java

我想从字符串中删除字母,我使用了替换函数,如下所示

String hello = "hello007";
hello = hello.replaceAll("[^\\d]", "");

它有效,但我知道它是如何工作的?什么是“^”和“// d”? 我知道^是“xor”。但无法理解用法?

为什么我们在[]下覆盖它?请指导我?

4 个答案:

答案 0 :(得分:3)

表达式[^ \\ d]表示不是数字

[] means one of these..
[^ ..] means (not one of these)
\  is escape character (because in Java you need to escape it)
\d   means digit

因此,如果您查看在线检查员,则需要查找\ d,这意味着所有数字都与

相同
[^0-9]

所以它会匹配' h''' l',' l',' o&#39 ;并用空格("")

替换每一个

答案 1 :(得分:2)

  • Date/time,Field1_avg,Field1_std,Field2_max,Field2_min,Field3_std,Field3_avg 2014-11-19 23:50:00,3.5,0,1,4.8,0.9,9.6,0.75 2014-11-20 23:50:00,4.5,0,1,4.3,0.9,9.1,0.75 2014-11-21 23:50:00,4.5,0,1,4.3,0.9,9.1,0.75 #MOREDATA and before the headers start a line empty #line empty [header] name='blabla' height=23 [header1] #and so on 匹配括号中的任何单个字符
  • [...]匹配行的开头
  • ^匹配括号内的任何单个字符
  • [^...]匹配数字(相当于[0-9])

答案 2 :(得分:1)

您正在使用正则表达式。你所说的是“不用任何东西替换每个[不是一个数字]”。

这里有更多关于Java中的regexp:

答案 3 :(得分:1)

无论内容是什么,都是正则表达式。

此链接http://regexone.com/将有助于了解正则表达式。

hello = hello.replaceAll(“[^ \ d]”,“”); works是,在hello存储的值中,每个字符都被一个空字符替换,并再次存储在hello中。