[Python-es] Duda con expresiones regulares

José Jorge Lorenzo Vila jjlorenzo en uci.cu
Jue Mar 4 10:08:32 CET 2010


On 03/04/2010 04:05 AM, Francisco Javier Cuadrado wrote:
> El día 4 de marzo de 2010 09:59, José Jorge Lorenzo Vila
> <jjlorenzo en uci.cu>  escribió:
>    
>> On 03/04/2010 03:53 AM, Francisco Javier Cuadrado wrote:
>>      
>>> El día 4 de marzo de 2010 09:43, José Jorge Lorenzo Vila
>>> <jjlorenzo en uci.cu>    escribió:
>>>
>>>        
>>>> Hola lista,
>>>>
>>>>          
>>> Hola.
>>>
>>>
>>>        
>>>> Siguiendo las indicaciones he instalado django-wikiapp,
>>>> La duda es que tengo problemas con las expresiones regulares y el
>>>> problema
>>>> radica en que por omisión, el título de los artículos en la wiki se
>>>> valida
>>>> contra la siguiente expresión regular.
>>>> Alguien me podría decir que patrón es el que se está definiendo aquí?
>>>> Me imagino que no debería ser tan restrictivo, pero por alguna razón no
>>>> me
>>>> machea nada.
>>>>
>>>> WIKI_WORD_RE = r'(?:[A-Z]+[a-z]+){2,}'
>>>> wikiword_pattern = re.compile('^' + WIKI_WORD_RE + '$')
>>>>
>>>>
>>>>          
>>> No estoy muy seguro, nunca se me han dado demasiado bien, pero mirando
>>> la página de la wikipedia sobre expresiones regulares[1], creo que es
>>> una palabra que debe empezar con una mayúscula, seguida de cero o más
>>> mayúsculas, a la que debe seguir una letra minúscula, seguida de cero
>>> o más minúsculas, y la palabra debe tener como mínimo una longitud de
>>> dos letras.
>>>
>>> Como te digo no estoy seguro, que alguien lo confirme o me corrija.
>>>
>>>
>>>        
>>>> Gracias
>>>>
>>>>          
>>> [1] http://es.wikipedia.org/wiki/Expresiones_regulares
>>>
>>>
>>>        
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>>          
>>>
>>>
>>>        
>> Bueno, me había dado casi por vencido, pero viendo lo que me recomendabas,
>> me animé otra vez.
>> Resulta que
>> JoseJorge         machea,
>> Jose                      no
>> JoseJ                    no
>> JoseJorgeLo    no
>>
>> Por lo que me parece estar viendo el patrón siguiente: Tiene que haber
>> mayúsculas seguidas por minusculas y esto se puede repetir solamente dos
>> veces.
>>
>>      
> Sí, es lo que comentas, porque me he equivocado al decir que como
> mínimo tenía que tener dos caracteres de longitud, ya que las llaves
> (que indican la longitud) se aplican al bloque de letras mayúsculas
> seguidas de minúsculas, por lo que sería una palabra formada de letras
> mayúsculas (1 a n) seguidas de minúsculas (1 a n) y este conjunto de
> letras se debe repetir dos veces, es decir algo así: MmMm (siendo M
> letras mayúsculas y m letras minúsculas).
>
>    
>> saludos y muchas gracias
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>      
>
>
>    
Exactamente, muchas gracias. Ahora solo me queda quitarle los {} porque 
me parece muy restrictivo.
Muchas gracias lista y en especial Francisco.



Más información sobre la lista de distribución Python-es