Si quiero tomar
"hi, my name is foo bar"
y divídalo en "foo"
, y "foO"
que esa división sea insensible a mayúsculas y minúsculas (dividida en cualquiera de "foO"
, "FOO"
, "Foo"
, etc.), ¿qué debo hacer? Tenga en cuenta que aunque me gustaría que la división sea sensible a mayúsculas y minúsculas, también QUIERO mantener la sensibilidad a las mayúsculas del rest de la cadena.
Así que si tengo:
test = "hi, my name is foo bar" print test.split('foo') print test.upper().split("FOO")
Yo obtendría
['hi, my name is ', ' bar'] ['HI, MY NAME IS ', ' BAR']
respectivamente.
Pero lo que quiero es:
['hi, my name is ', ' bar']
cada vez. El objective es mantener la sensibilidad a las mayúsculas de la cadena original, excepto en lo que estoy dividiendo.
Así que si mi cadena de prueba era:
"hI MY NAME iS FoO bar"
Mi resultado deseado sería:
['hI MY NAME iS ', ' bar']
Puede usar la función re.split
con el indicador re.IGNORECASE
(o re.I
para abreviar):
>>> import re >>> test = "hI MY NAME iS FoO bar" >>> re.split("foo", test, flags=re.IGNORECASE) ['hI MY NAME iS ', ' bar'] >>>
También puede buscar algo y obtener la posición inicial de la palabra clave. Lo recomendaría y lo cortaría con el método de “subcadena”. (Soy de C #, así que no sé cuál es el método en este idioma)