Regex Encuentra un número detrás de una fase de texto

Tengo una cadena que es un ContentStream de un objeto de correo electrónico.

La cadena es como "....Número de manzanas:\t1000...."

Necesito poner 1000 en una variable. Pero no puedo construir un RegEx que funcione.

Necesito algo de ayuda.

preguntado el 22 de mayo de 12 a las 19:05

Debes publicar la expresión regular que probaste. -

¿Necesita encontrar algún tipo de número, por ejemplo, cualquier decimal o simplemente números enteros? -

¿Siempre comenzará con 'Número de manzanas:'? lo que lo detiene simplemente usando una búsqueda simple (ya sea usando expresiones regulares o no) y simplemente usando Substring para obtener la parte numérica. Puede usar grupos de expresiones regulares para cerrar la parte \d+ de la expresión regular y luego acceder a este grupo desde el resultado de la expresión regular. ¡Esto huele un poco a tarea! -

wow, en realidad esta mañana me di cuenta de que una simple búsqueda lo haría. gracias por las respuestas rapidas Supongo que mi cabeza estaba demasiado cansada anoche. -

2 Respuestas

\d+ para enteros no negativos. \-?\d+ para enteros positivos o negativos.

Eso, por supuesto, coincidirá cualquier número en su cadena. Debe incluir un vistazo para asegurarse de capturar el número correcto. Para el ejemplo anterior:

@"(?<=Number\ of\ apples\:\s*)\d+"

contestado el 22 de mayo de 12 a las 19:05

Puede comenzar con algo como esto como base para sus experimentos:

\b(-?[0-9]+(\.[0-9]+)?)\b

contestado el 22 de mayo de 12 a las 19:05

Si el número es negativo, la expresión regular coincidirá solo si el - sigue inmediatamente a una palabra debido a la primera \b. - MRAB

Hay un espacio entre "-" y los dígitos en algunos idiomas (-1000). De todos modos no puedes tener -1000 manzanas :) - Ondra

@OndraMorský: ¡a menos que le debas a alguien una tarta de manzana realmente sustanciosa! - Mithrandir

Ah, supongo que aquí no hay un número negativo, a menos que quieran darme manzanas en lugar de pedirme algunas. - Luong

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.