Подстановочный шаблон 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) 
  • python делится на несколько раз
  • Вам разрешено изменять func_defaults (__defaults__ в Python 3.x) в Python?
  • Соответствие непустых линий с пирарированием
  • поток файлов python ftp или многопроцессорный
  • Python 2.7: Как использовать BeautifulSoup в Google App Engine?
  • Python - зацикливание файлов - закажите
  • HttpError 401 «Login Required» при использовании Calendar v3 api python для вставки события
  • Что такое питонический способ дифференцирования строки и списка?
  • определить, содержит ли список другие списки
  • Создать .pyi-файлы автоматически?
  • Динамическое создание модуля в sys.modules приводит к тому, что sys становится None
  • Python - лучший язык программирования в мире.