regulares python3 online funcion first expresiones ejemplos python regex character-properties

python3 - Python y expresión regular con Unicode



python capitalize string (2)

¿Estás usando Python 2.xo 3.0?

Si está utilizando 2.x, intente convertir la cadena de expresiones regulares en una cadena de escape de unicode, con ''u''. Como es regex, es una buena práctica hacer que su cadena de expresiones regulares sea una cadena sin formato, con ''r''. Además, poner su patrón completo entre paréntesis es superfluo.

re.sub(ur''[/u064B-/u0652/u06D4/u0670/u0674/u06D5-/u06ED]+'', '''', ...)

http://docs.python.org/tutorial/introduction.html#unicode-strings

Editar:

También es una buena práctica usar el indicador re.UNICODE / re.U / (? U) para las expresiones regulares unicode, pero solo afecta los alias de la clase de caracteres como / w o / b, de los cuales este patrón no usa ninguno y tampoco lo haría ser afectado por.

Necesito eliminar algunos símbolos Unicode de la cadena ''بسم الله الرحمن الرحيم''

Sé que existen aquí seguro. Lo intenté:

re.sub(''([/u064B-/u0652/u06D4/u0670/u0674/u06D5-/u06ED]+)'', '''', ''بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ'')

pero no funciona. La cadena permanece igual. ¿Qué estoy haciendo mal?


Use cadenas de caracteres unicode Use la bandera re.UNICODE .

>>> myre = re.compile(ur''[/u064B-/u0652/u06D4/u0670/u0674/u06D5-/u06ED]+'', re.UNICODE) >>> myre <_sre.SRE_Pattern object at 0xb20b378> >>> mystr = u''بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ'' >>> result = myre.sub('''', mystr) >>> len(mystr), len(result) (38, 22) >>> print result بسم الله الرحمن الرحيم

Lea el artículo de Joel Spolsky llamado The Absolute Minimum. Todo desarrollador de software Absolutamente, definitivamente debe saber sobre Unicode y juegos de caracteres (¡Sin excusas!)