El 22/08/2012 10:56, Juan Ignacio escribió:
¿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 <[email protected]
<mailto:[email protected]>>
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
[email protected] <mailto:[email protected]>
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: [email protected] <mailto:[email protected]>
http://www.metriz.com/
http://descon2.com/
http://www.elornitorrincoenmascarado.com/
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
Hola Juan Ignacio,
La idea era que N apareciese explícitamente en la expresión
regular. Pero me temo que es imposible sólo con expresiones regulares
así que la solución que propones debe ser la correcta.
Gracias por tu tiempo y saludos.
--
*Jesús Curbelo <mailto:[email protected]>
/Quis custodiet ipsos custodes?/ *
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/