Ответ
Символ + в регулярных выражениях — это квантификатор, который означает «одно или более повторений» предшествующего ему символа, группы или класса символов.
Он требует, чтобы элемент, к которому он применяется, встретился в строке как минимум один раз.
Пример использования:
import re
text = "color, colour, color, colouur"
# Ищем 'colo', затем одну или более букв 'u', затем 'r'
pattern = r"colou+r"
matches = re.findall(pattern, text)
print(matches) # Вывод: ['colour', 'colouur']
# 'color' не будет найдено, так как 'u' отсутствует (0 повторений)
Сравнение с другими квантификаторами:
*(звёздочка): ноль или более повторений.colou*rнайдет иcolor, иcolour.?(вопросительный знак): ноль или одно повторение.colou?rнайдетcolorиcolour, но неcolouur.+(плюс): одно или более повторений. Эквивалентен записи{1,}.
Жадный (Greedy) vs. Ленивый (Lazy) режим
По умолчанию + является жадным: он захватывает максимально длинную последовательность. Чтобы сделать его ленивым (захватить минимально возможную), используется +?.
Ответ 18+ 🔞
А, слушай, смотри, вот этот плюсик в регулярках — это ж, блядь, такая штука, которая орет: «Давай ещё, сука, ещё!». По-умному — квантификатор. Означает он, что символ, группа или вся эта хуйня, что стоит перед ним, должна повториться один раз или больше. Меньше одного — нихуя не прокатит.
Ну, смотри, как это работает, на примере:
import re
text = "color, colour, color, colouur"
# Ищем 'colo', потом одну или больше букв 'u', и наконец 'r'
pattern = r"colou+r"
matches = re.findall(pattern, text)
print(matches) # Вывод: ['colour', 'colouur']
# А 'color' нихуя не найдется, потому что там 'u' ноль раз, а плюсик требует хоть разок, ёпта!
А теперь, чтобы не запутаться, сравни с другими засранцами-квантификаторами:
*(звёздочка): Это пофигист. Ноль или больше повторений.colou*rнайдет иcolor(ноль 'u'), иcolour(одна 'u'), и дажеcolouuuuur(сколько угодно 'u').?(вопросик): Нерешительный мудак. Ноль или одно повторение.colou?rнайдетcolorиcolour, но наcolouurуже скажет «иди нахуй».+(наш плюсик): Ненасытный жлоб. Одно или больше повторений. То же самое, что написать{1,}. Требует минимум одну штуку, иначе — пиздец.
А теперь самое вкусное: жадность, блядь!
По дефолту этот + — жадный, как пидарас в бане. Он схватит самую длинную возможную хуйню. Хочешь его обуздать, сделать ленивым, чтобы хватал по минимуму? Так и пиши — +?. Вот тогда он будет брать ровно столько, чтобы паттерн сошёлся, и ни символом больше, хитрая жопа.