2009-04-03 21 views
16

Tengo una cadena que puede contener o no un número de 4 o 5 dígitos. Estoy buscando una expresión regular que pueda detectar si la cadena realmente tiene ese número.Regex para encontrar un número en una cadena

+5

+1: No sé por qué esta pregunta fue downvoted. Tal vez algunos de los l33t sooper h @><0rz en este sitio pensaron que estaba demasiado debajo de ellos como para merecer una respuesta, aunque las preguntas frecuentes en este sitio dicen que ninguna pregunta es "demasiado simple" para preguntar ... – Juliet

+0

¿Por qué no utilizar? un bucle for? – Mikhail

Respuesta

15

El infalible para evitar los números más largos sería:

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

Supongo que no desea permitir una coma después de los miles de dígitos? Si lo hace, entonces:

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

Simple \d{4,5} bastará.

0

.NET? Entonces es [0-9]{4,5}

+0

\ d funciona bien en .Net, también. –

+0

Derecha. No soy muy regexp, así que no recuerdo las clases de personajes. [0-9] es más fácil. : D –

2

\ d {4,5} también encontrarán cadenas con 6 dígitos en los números - No sé si eso es un problema o no. Es posible que desee hacer algo como esto:

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

+0

Gracias por aceptar, pero hay mejores respuestas que esta ahora –

Cuestiones relacionadas