2010-11-19 8 views
0

Disons que j'ai une grande quantité de texte (aléatoire). Dans ce texte, il y a un numéro de téléphone composé de trois chiffres, un tiret, trois autres chiffres, un tiret et quatre chiffres. Par exemple, XXX-XXX-XXXX. Quelle serait la regex pour récupérer ce numéro du texte. J'ai essayé d'utiliser:Récupérer des nombres séparés par '-'

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

Maintenant, je pensais que cela fonctionnerait, mais ce n'est pas le cas. S'il vous plaît aider.

Répondre

5

Le regex: \d{3}-\d{3}-\d{4}

+0

* Presque * trop succincte –

+0

@instanceofTom je ne peux pas donner plus de détails. Je ne connais que regex, pas Java :). –

+1

Vous avez '//' au lieu de '\\' – 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); 
} 
Questions connexes