2010-11-19 2 views
0

Допустим, у меня есть большое количество (случайный) текст. В этом тексте есть номер телефона, состоящий из трех цифр, тире, еще трех цифр, тире и четырех цифр. Например, XXX-XXX-XXXX. Каким будет регулярное выражение для извлечения этого числа из текста. Я попытался использовать:Извлечь числа, разделенные '-'

Matcher matcher = pattern.matcher(previousText); 
Pattern pattern2 = Pattern.compile(".*(\\d\\d\\d-\\d\\d\\d-\\d\\d\\d\\d).*") 
Matcher matcher2 = pattern2.matcher(currentText); 

Теперь, хотя это сработает, но это не так. Пожалуйста помоги.

ответ

5

Регулярное выражение: \d{3}-\d{3}-\d{4}

+0

* Почти * слишком сжато –

+0

@instanceofTom я не могу дать более подробную информацию. Я знаю только регулярное выражение, а не Java :). –

+1

У вас есть '//' вместо '\\' – izb

1
Pattern pattern = Pattern.compile(".*(\\d{3}-\\d{3}-\\d{4}).*"); 
Matcher matcher = pattern.matcher(text); 
if (matcher.find()) { 
    String number = matcher.group(1); 
    System.out.println(number); 
} 
Смежные вопросы