ignorecase example escape python regex case-sensitive case-insensitive

example - python split regex



Expresión regular Python insensible a mayúsculas sin re.compile (6)

El marcador que no distingue entre mayúsculas y minúsculas, (?i) se puede incorporar directamente en el patrón de expresiones regulares:

>>> import re >>> s = ''This is one Test, another TEST, and another test.'' >>> re.findall(''(?i)test'', s) [''Test'', ''TEST'', ''test'']

En Python, puedo compilar una expresión regular para que no re.compile mayúsculas de minúsculas usando re.compile :

>>> s = ''TeSt'' >>> casesensitive = re.compile(''test'') >>> ignorecase = re.compile(''test'', re.IGNORECASE) >>> >>> print casesensitive.match(s) None >>> print ignorecase.match(s) <_sre.SRE_Match object at 0x02F0B608>

¿Hay alguna manera de hacer lo mismo, pero sin usar re.compile ? No puedo encontrar nada como el sufijo i de Perl (por ejemplo, m/test/i ) en la documentación.


En importaciones

import re

En la inicialización de la aplicación:

self.re_test = re.compile(''test'', re.IGNORECASE)

En tiempo de ejecución de procesamiento:

if self.re_test.match(''TeSt''):


Pase re.IGNORECASE a los re.IGNORECASE de search , match o sub :

re.search(''test'', ''TeSt'', re.IGNORECASE) re.match(''test'', ''TeSt'', re.IGNORECASE) re.sub(''test'', ''xxxx'', ''Testing'', flags=re.IGNORECASE)


También puede definir mayúsculas y minúsculas durante la compilación del patrón:

pattern = re.compile(''FIle:/+(.*)'', re.IGNORECASE)


También puede realizar búsquedas que no distinguen entre mayúsculas y minúsculas mediante la búsqueda / coincidencia sin el indicador IGNORECASE (probado en Python 2.7.3):

re.search(r''(?i)test'', ''TeSt'').group() ## returns ''TeSt'' re.match(r''(?i)test'', ''TeSt'').group() ## returns ''TeSt''


#''re.IGNORECASE'' for case insensitive results short form re.I #''re.match'' returns the first match located from the start of the string. #''re.search'' returns location of the where the match is found #''re.compile'' creates a regex object that can be used for multiple matches >>> s = r''TeSt'' >>> print (re.match(s, r''test123'', re.I)) <_sre.SRE_Match object; span=(0, 4), match=''test''> # OR >>> pattern = re.compile(s, re.I) >>> print(pattern.match(r''test123'')) <_sre.SRE_Match object; span=(0, 4), match=''test''>