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''):
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''>