Подстановочный шаблон Python в строке

Допустим, у меня есть список

list = ['this','is','just','a','test'] 

как я могу заставить пользователя выполнить поиск по шаблону?

Поиск слова: 'th_s'

Вернул бы "это"

6 Solutions collect form web for “Подстановочный шаблон Python в строке”

Регулярные выражения, вероятно, являются самым простым решением этой проблемы:

 import re regex = re.compile('th.s') l = ['this', 'is', 'just', 'a', 'test'] matches = [string for string in l if re.match(regex, string)] 

Использовать fnmatch :

 import fnmatch lst = ['this','is','just','a','test'] filtered = fnmatch.filter(lst, 'th?s') 

Если вы хотите разрешить _ в качестве подстановочного знака, просто замените все символы подчеркивания на '?' (для одного символа) или * (для нескольких символов).

Если вы хотите, чтобы ваши пользователи использовали еще более мощные параметры фильтрации, подумайте о том, чтобы позволить им использовать регулярные выражения .

Вы имеете в виду какой-либо конкретный синтаксис для подстановочных знаков? Обычно * означает «один или несколько» символов и ? означает один.

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

Вы можете попробовать модуль fnmatch , у него есть синтаксис подстановочных символов в оболочке

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

импортировать повторно

Такая же идея, как Yuushi в использовании регулярных выражений, но это использует метод findall в библиотеке re вместо понимания списка:

 import re regex = re.compile('th.s') l = ['this', 'is', 'just', 'a', 'test'] matches = re.findall(regex, string) 

os.system методом является попытка os.system :

 import os text = 'this is text' os.system("echo %s | grep 't*'" % text) 
  • NDB не освобождает память во время длительного запроса
  • Поведение Python: id () в интерпретаторе
  • не defaultdict (None)
  • Как использовать gaesessions в google-app-engine
  • Почему я не могу заменить метод __str__ объекта Python другой функцией?
  • sys.argv значение в скрипте
  • Использование try vs, если в python
  • Обработка запроса уведомлений от Facebook после успешной подписки
  • Как реализовать необязательный первый аргумент в Python (воспроизведение поведения slice ())
  • Можно ли использовать функции перед объявлением своего тела в python?
  • Различия между Go и Cython
  • Python - лучший язык программирования в мире.