2009-04-03 14 views
16

J'ai une chaîne qui peut contenir ou non un nombre de 4 ou 5 chiffres. Je suis à la recherche d'une regex qui peut détecter si la chaîne a effectivement un tel nombre.Regex pour trouver un nombre dans une chaîne

+5

+1: Je ne sais pas pourquoi cette question a été mise en baisse. Peut-être qu'une partie du l33t sooper h @><0rz sur ce site pensé était trop loin en dessous d'eux pour mériter une réponse, même si la FAQ sur ce site dit qu'aucune question n'est "trop ​​simple" à demander ... – Juliet

+0

Pourquoi ne pas utiliser une boucle pour? – Mikhail

Répondre

15

Celui à toute épreuve pour éviter un nombre plus serait:

([^\d]|^)\d{4,5}([^\d]|$) 

Je suppose que vous ne voulez pas permettre une virgule après le chiffre des milliers? Si vous faites alors:

([^\d]|^)\d{1,2},\d{3}([^\d]|$) 
1

Simple \d{4,5} suffira.

0

.NET? Ensuite, il [0-9]{4,5}

+0

\ d fonctionne bien dans .Net, aussi. –

+0

Droite. Je ne suis pas vraiment un type Regexp, donc je ne me souviens pas des classes de personnages. [0-9] est plus facile. : D –

2

\ d {4,5} trouveront également des chaînes avec des nombres à 6 chiffres - je ne sais pas si c'est un problème ou non. Vous voudrez peut-être faire quelque chose comme ceci:

([^ \ d] + | ^) \ d {4,5} [^ \ d]

+0

Merci pour l'accepter, mais il y a de meilleures réponses que maintenant –

Questions connexes