2015-10-10 4 views
0

Я хочу удалить алфавиты из моей строки, я использовал функцию заменить следующийЧто такое [^ \ d]? как replaceAll ("[^ \ d]", ""); работает?

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

Он работал, но я знаю, как это работает? Что такое «^» и «// d»? Я узнаю, что^is "xor". Но неспособность понять использование?

Почему мы закрываем его под []? Пожалуйста, направляйте меня?

ответ

0
  • [...] соответствует любому одному символу в скобках
  • ^ матчи начало линии
  • [^...] соответствует любому символу не в скобках
  • \d совпадения цифр (что эквивалентно [0-9])
1

Выражение [^ \\ г] означает не цифру, где

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

так что если вы проверить онлайн проверки, вы ищете \ д, что означает все цифры, что то же самое, как

[^0-9] 

Таким образом, он будет соответствовать «h», «e», «l», «l», «o» и заменяет каждый пробел («»)

+0

Спасибо, я на полпути, чтобы полностью понять. Почему мы использовали escape-символ? что мы пытаемся убежать отсюда? – Mona

+0

, если вы положите \ d, тогда java будет вещью, это особый символ. Так же, как \ n является особенным. – ergonaut

0

Независимо от того, что внутри [...] является обычным выражение.

Эта ссылка http://regexone.com/ будет полезна, чтобы узнать о регулярном выражении.

Как hello = hello.replaceAll ("[^ \ d]", ""); работает, в значении, хранящемся по приветствию, каждый символ заменяется пустым символом и снова хранится в приветствии.