Я пытаюсь найти слова, оканчивающиеся на 'ing', в следующем предложении = "Играть в подвижные игры, когда на улице всегда идет дождь!"
Теперь это не мой вопрос, поскольку я нашел необходимыйшаблон регулярных выражений, чтобы сделать это - (r'\b([A-z]+ing)\b')
.
Дело в том, что я не могу понять, почему работает выше, но не то, что я попробовал ниже:
re.findall('([A-z]+ing)$',"Playing outdoor games when it's raining outside is always fun!")
Возвращает пустой список, хотя приведенное ниже не
re.findall('([A-z]+ing)$','amazing')
Возвращает потрясающий
Таким образом, этот шаблон может соответствовать отдельным словам, заканчивающимся на 'но не слова в предложениях?Почему?
Что мне показалось еще более странным, так это: re.findall('\b([A-z]+ing)\b',"Playing outdoor games when it's raining outside is always fun!")
не возвращает совпадений (пустой список).Единственное отличие состоит в том, что мы не используем необработанную строковую нотацию (r)
. Я думал, что нотация 'r' необходима только тогда, когда мы хотим избежать обратной косой черты.Так что в этом случае: Pattern1 - '\ b ([Az] + ing) \ b' должен соответствовать игре, дождю и т. Д. Вместо Pattern2- r '\ b ([Az] + ing) \ b ' Что именно я неправильно понял?Я искал много ответов Stack Overflow и официальную документацию по регулярным выражениям Python, и теперь я более запутан, чем когда я начинал, особенно в отношении использования 'r' .