Estoy desarrollando un algoritmo para analizar un número de una serie de cadenas cortas. Estas cadenas son algo regulares, pero hay algunas formas generales diferentes y varias excepciones. Estoy intentando crear un conjunto de expresiones regulares que manejarán las diversas formas y excepciones; Los aplicaré uno tras otro para ver si obtengo una coincidencia.Coincidencia de una subcadena opcional en una expresión regular
Una de estas formas es algo como esto:
X (Y) Z
Dónde:
- X es un número que quiero capturar.
- Z es texto estático, predefinido. es básicamente cómo determino si esta forma particular es aplicable o no.
- Y es una cadena de longitud y contenido desconocidos, rodeada de paréntesis.
También: Y es opcional; que no siempre aparece en una cadena con Z y X. Por lo tanto, quiero ser capaz de extraer los números de todas estas cadenas:
- 10 Z
- 20 (foo) Z
- 30 (bar) Z
en este momento, tengo una expresión regular que capturará la primera:
([0-9]+) +Z
Mi problema es que no sé cómo construir una expresión regular que coincidirá con una serie de caracteres si y solo si están entre paréntesis. ¿Se puede hacer esto en una sola expresión regular?
Los espacios son estáticos. Reemplazarlos con \ s + –
o colocar uno de ellos dentro de()? –
Tenga en cuenta que si la expresión regular captura \ n con. o si hay varias instancias en una línea, esto debería ser no codicioso: (\ d *) (\ (. *? \))? Z – eyelidlessness