2014-10-20 4 views
0

Я хочу выяснить, какая строка содержит две черты. Вперед слэш легко проверитьКак совместить обратную косую черту в Java?

String test = "12/13/2013"; 
boolean slash = test.matches("\\d+\\/\\d+\\/\\d+"); 

Но как проверить для обратный слэш?

String test = "12\13\2013"; 
boolean slash = test.matches("\\d+\\\\\\d+\\\\\\d+"); 

Вышеупомянутое не признает это? Я также пробовал ("\\d+\\\\d+\\\\d+")

+0

Этот '' \ '' является обратным слэшем, и этот '/' является косой чертой. –

+2

'' 12 \ 13 \ 2013 "' -> '" 12 \\ 13 \\ 2013 "'. Вам нужно бежать \ во всех литералах. – njzk2

ответ

7

Вы правильно выполнили правильное выражение, но вы не смогли избежать тестовой строки. Попробуйте

String test = "12\\13\\2013"; 

Интересно, что ваш код String test = "12\13\2013"; компилируется, потому что вы случайно указанные символы их восьмеричной ускользает, которые определяются обратной косой черты, за которым следует восьмеричное число, из \000 через \377. То есть \13 и \201 - восьмеричные побеги.

+0

Спасибо, я понял – Alex

Смежные вопросы