Tengo problemas para la construcción de una expresión regular con el conjunto de cadenas sobre {a, b, c}
que es una longitud odd
con exactamente uno a
. Aquí está mi mejor intento hasta el momento:Determinar si la cadena es de longitud par o impar con expresión regular
(bb|bc|cb|cc)*a(bb|bc|cb|cc)*
Esto hace el bien, incluso para b
y c
a ambos lados de la a
, pero no da cuenta de una extraña y b
c
combinación de ambos lados de la a
.
¿Alguna pista?
Puede simplificar eso en '([bc] [bc]) * (a | [bc] a [bc]) ([bc] [bc]) *' - aplique la alternancia solo donde lo necesite. – Kobi
Los corchetes no funcionarán porque eso significa que coinciden exactamente una vez.La cadena 'a' en sí misma debe ser una cadena válida ya que es impar, su expresión regular no cuenta por sí misma. – ubiquibacon
@Kobi Correcto. Gracias por señalar eso. Sin embargo, esta es una línea de pensamiento diferente ... –