Простой шаблон поиска Python
У меня есть предложение. Я хочу найти все вхождения слова, которое начинается с определенного символа в этом предложении. Я очень новичок в программировании и Python, но из того, что я знаю, это звучит как вопрос Regex.
Что такое код соответствия шаблону, который позволит мне найти все слова, соответствующие моему шаблону?
Большое спасибо заранее,
Brock
Ответы
Ответ 1
import re
print re.findall(r'\bv\w+', thesentence)
будет печатать каждое слово в предложении, которое начинается с 'v'
, например.
Используя метод строк split
, как предлагает другой ответ, не будет идентифицировать слова, а фрагменты, разделенные пробелами, которые могут включать пунктуацию. Это решение на основе re
действительно идентифицирует слова (буквы и цифры, без пунктуации).
Ответ 2
import re
s = "Your sentence that contains the word ROAD"
s = re.sub(r'\bROAD', 'RD.', s)
print s
Читайте: http://diveintopython3.org/regular-expressions.html
Ответ 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, вы обнаружите, что понимание списков (например, решение выше) важно для достижения уровня комфорта с.