¿Podría valerte este?

^A+B*$|^A*B+$

Tendrías que comprobar en un test aparte que la longitud del string es N

2012/8/22 Jesús Curbelo Rodríguez <jescurb...@gmail.com>

>  Hola a todos,
>
> Me ha surgido una duda intentando crear una expresión regular.
>
> Supongamos que tenemos una lista de cadenas que cumplen las siguientes
> condiciones
>
>    - La longitud de las cadenas es constante, digamos que de longitud N.
>    - Las cadenas están formadas sólo por los caracteres A y B.
>    - Los caracteres A siempre están alineados a la izquierda.
>    - Los caracteres B siempre están alineados a la derecha.
>    - Los caracteres A pueden aparecer J veces, siendo 0<=J<=N.
>    - Los caracteres B pueden aparecer K veces, siendo 0<=K<=N.
>    - J y K son distintos para cada cadena pero siempre se cumple J + K =
>    N.
>    - Ejemplos, para N=5: AAAAA, AAAAB, AAABB, AABBB, ABBBB, BBBBB (para
>    N=5 no hay más posibilidades).
>
>
> Cuando N es pequeño podemos poner todas las opciones como alternativas,
> por ejemplo, para N=2 podemos usar la expresión A{2}|AB|BA|B{2} . Pero para
> valores mayores de N esta forma de proceder es inviable.
>
> ¿Alguien conoce una expresión regular que se pueda usar para cualquier
> valor de N?
>
> Gracias de antemano.
>
> Saludos.
>
> Jesús Curbelo.
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Juan Ignacio Rodríguez de León
Móvil: 605 890514
E-Mail: euriba...@gmail.com
http://www.metriz.com/
http://descon2.com/
http://www.elornitorrincoenmascarado.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a