Нечувствительный к строкам метод разделения строк Python

У меня 2 строки

a = "abc feat. def" b = "abc Feat. def" 

Я хочу получить строку перед словом feat. или Feat.

Это то, что я делаю,

 a.split("feat.", 1)[0].rstrip() 

Это возвращает abc . Но как я могу выполнить поиск без учета регистра с использованием разделителя разделителя?

Это то, что я пробовал до сих пор

 b.split("feat." or "Feat.", 1)[0].rstrip() 

Выход – abc Feat. def abc Feat. def

b.split("feat." and "Feat.", 1)[0].rstrip()

Выход – abc

a.split("feat." and "Feat.", 1)[0].rstrip()

Результат – abc feat. def abc feat. def .

a.split("feat." or "Feat.", 1)[0].rstrip()

Выход – abc

Почему это различие с and и / or в обоих случаях?

3 Solutions collect form web for “Нечувствительный к строкам метод разделения строк Python”

a[0:a.lower().find("feat.")].rstrip() будет делать.

and

"string1" and "string2" and ... and "stringN"

возвращает последнюю строку.

or

"string1" or "string2" or ... or "stringN"

вернет первую строку.

Оценка короткого замыкания .

Вместо этого используйте регулярное выражение:

 >>> import re >>> regex = re.compile(r"\s*feat\.\s*", flags=re.I) >>> regex.split("abc feat. def") ['abc', 'def'] >>> regex.split("abc Feat. def") ['abc', 'def'] 

или, если вы не хотите разрешать FEAT. или fEAT. (которое было бы в этом регулярном выражении):

 >>> regex = re.compile(r"\s*[Ff]eat\.\s*") 

Вы должны использовать регулярное выражение:

 re.split('\s*[Ff]eat\.', a) 

and or сделать какое-то логическое суждение.

 "feat." or "Feat." -> "feat." if "feat." else "Feat." -> "feat." "feat." and "Feat." -> "Feat." if "feat." else "feat." -> "Feat." . "feat." or "Feat." -> "feat." if "feat." else "Feat." -> "feat." "feat." and "Feat." -> "Feat." if "feat." else "feat." -> "Feat." 
  • как изменить случай первой буквы строки?
  • В Python, как мне подсчитать конечные нули в строке или целое?
  • Печать определенных частей строки в python
  • Почему функция не работает? Попытка заменить слова в строке
  • Как я могу разделить эту строку с разделителями-запятыми в Python?
  • Строка для словаря в Python
  • Как присоединиться к списку строк?
  • Функция isalpha python не будет рассматривать пробелы
  •  
    Interesting Posts for Van-Lav

    render ('django.contrib.auth.views.login'), указывающий на другой URL, чем {% url 'django.contrib.auth.views.login'%}

    Как интегрировать PHP / Python Interpreter в Notepad ++

    Как преобразовать целое число в кратчайшую безопасную строку в Python?

    Как вычислить точность, отзыв, точность и f1-score для многоклассового футляра с помощью scikit?

    Как защитить переменные класса python от злого программиста?

    Модуль Tempfile и потоки Python не играют хорошо; Что я делаю не так?

    Красивый суп – не удалось создать csv и текстовые файлы после очистки

    Найти ближайший float в массиве для всех поплавков в другом массиве

    Python string.join (список) в массиве объектов, а не строковый массив

    Как преобразовать данные со скользящим окном по данным временных рядов в Pyspark

    Чтение вывода из дочернего процесса с использованием python

    Как преобразовать некоторый символ в пятизначный unicode в Python 3.3?

    Удаление пунктуации из элементов списка Python

    Использование Numpy с pypy

    Переопределить свойство только для чтения с столбцом только для чтения, который получает то же значение

    Python - лучший язык программирования в мире.