Сопоставление строк без учета регистра в Python: методы и примеры

Чтобы найти совпадающую строку в Python независимо от регистра, вы можете использовать различные методы. Вот несколько подходов:

  1. Использование метода str.lower(). Вы можете преобразовать строку поиска и целевую строку в нижний регистр и сравнить их. При этом чувствительность к регистру будет игнорироваться.

    search_string = "example"
    target_string = "This is an Example"
    if search_string.lower() in target_string.lower():
    print("Match found!")
  2. Использование регулярных выражений (регулярных выражений) с модулем re: вы можете использовать флаги без учета регистра (re.IGNORECASEили re.I) в сочетании с функцией re.search()для поиска совпадений без учета регистра.

    import re
    search_string = "example"
    target_string = "This is an Example"
    if re.search(search_string, target_string, re.IGNORECASE):
    print("Match found!")
  3. Использование метода str.casefold(): аналогично str.lower(), str.casefold()преобразует строки в нижний регистр, но с дополнительной нормализацией Unicode. Это может быть полезно для сравнений без учета регистра, особенно при работе с неанглийскими символами.

    search_string = "example"
    target_string = "This is an Example"
    if search_string.casefold() in target_string.casefold():
    print("Match found!")
  4. Использование модуля fnmatch: если вам нужно выполнить сопоставление без учета регистра с шаблонами подстановочных знаков (аналогично шаблонам оболочки Unix), вы можете использовать fnmatchфункция fnmatchcase()модуля.

    import fnmatch
    search_string = "example"
    target_string = "This is an Example"
    if fnmatch.fnmatchcase(target_string, f"*{search_string}*"):
    print("Match found!")