Tengo una lista de cadenas. Algunos de ellos son de la forma 123-...456
. La porción variable "..." puede ser:
- la cadena "manzana" seguida de un guión, por ej.
123-apple-456
- la cadena "banana" seguida de un guión, p. ej.
123-banana-456
- una cadena en blanco, por ejemplo
123-456
(tenga en cuenta que solo hay un guión)
Cualquier palabra que no sea "manzana" o "plátano" no es válida.
Para estos tres casos, me gustaría hacer coincidir "manzana", "plátano" y "", respectivamente. Tenga en cuenta que nunca quiero capturar el guión, pero siempre quiero hacer coincidirlo . Si la cadena no tiene la forma123-...456
descrita anteriormente, entonces no hay ninguna coincidencia.
¿Cómo escribo una expresión regular para hacer esto? Suponga que tengo un sabor que permite mirar hacia adelante, mirar hacia atrás, mirar hacia atrás y grupos que no capturan.
La observación clave aquí es que cuando tienes "manzana" o "plátano", también debes tener el guión final, pero no quieres que coincida. Y cuando coincida con la cadena en blanco, no debe tener el guión final. Una expresión regular que encapsula esta afirmación será la correcta, creo.