2012-09-19 5 views
-5

J'écris une regex simple en java, et pour certaines raisons mon regx ne fonctionne pas.regex pour analyser une chaîne en java

Ce que je veux obtenir est d'analyser une chaîne qui est,

  • Commence par 9
  • a exactement 10 chiffres (y compris le préfixe 9)

Mon Regex est (^9\\d[0-9]{10}) et Je veux analyser comme un exemple, 91234567890. Mais cela ne fonctionne pas.

+2

La chaîne "ne fonctionne pas" n'est pas un message d'erreur intégré dans Java. –

+0

@JackManet Il semble qu'il veut dire que la regex ne correspond pas, pas qu'il y ait une exception persay –

+3

@AlexColeman: «par soi» est le latin et signifie «par lui-même» ou «en soi».

Répondre

5

Vous ne devriez pas avoir échappé le [ (parce que cela a fait votre regex s'attendre à un littéral [ après le 9).

De plus, 1 + 10 = 11, vous devez donc réduire le quantificateur.

Enfin, utilisez la fin de chaîne ancre $ pour vous assurer qu'aucun autre caractères se produisent après le 10 chiffres:

^9[0-9]{9}$ 
+0

merci, cela fonctionne. (Il correspond à la chaîne) :) – Tony

3
9[0-9]{9} 

devrait fonctionner. Il recherche le numéro 9, suivi de 9 autres chiffres

+0

Cela fonctionne si Tony utilise la méthode '.matches()'. –

+0

@TimPietzcker bon point, même si je supposais qu'il l'utiliserait pour correspondre à plus d'une instance –

Questions connexes