Простой шаблон поиска Python

У меня есть предложение. Я хочу найти все вхождения слова, которое начинается с определенного символа в этом предложении. Я очень новичок в программировании и Python, но из того, что я знаю, это звучит как вопрос Regex.

Что такое код соответствия шаблону, который позволит мне найти все слова, соответствующие моему шаблону?

Большое спасибо заранее,

Brock

Ответ 1

import re
print re.findall(r'\bv\w+', thesentence)

будет печатать каждое слово в предложении, которое начинается с 'v', например.

Используя метод строк split, как предлагает другой ответ, не будет идентифицировать слова, а фрагменты, разделенные пробелами, которые могут включать пунктуацию. Это решение на основе re действительно идентифицирует слова (буквы и цифры, без пунктуации).

Ответ 3

>>> sentence="a quick brown fox for you"
>>> pattern="fo"
>>> for word in sentence.split():
...     if word.startswith(pattern):
...         print word
...
fox
for

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

Ответ 4

Во второй рекомендации по дайвингу в Python. Но это в основном:

m = re.findall(r'\bf.*?\b', 'a fast and friendly dog')
print(m)

\ b означает границу слова и. *? гарантирует, что мы сохраним целое слово, но отступим, чтобы не заходить слишком далеко (технически, "называется ленивым оператором" ).

Ответ 5

Вы можете сделать (не использует re хотя):

matching_words = [x for x in sentence.split() if x.startswith(CHAR_TO_FIND)]

Регулярные выражения тоже работают (см. другие ответы), но я думаю, что это решение будет немного более читаемым, а как начинающий, изучающий Python, вы обнаружите, что понимание списков (например, решение выше) важно для достижения уровня комфорта с.