nixp.ru v3.0

19 апреля 2024,
пятница,
02:02:27 MSK

Аватар пользователя myst
myst написал 3 апреля 2009 года в 00:29 (934 просмотра) Ведет себя как Череп; открыл 50 тем в форуме, оставил 2987 комментариев на сайте.

Задача: если фамилия начинается с приставки Mac или Mc, сделать следующую за приставкой букву заглавной. На Python.

Пример (Perl):

$last_name =~ s/^Mac|Mc\K(.)/\U$1/;

Пример (Python):

last_name = re.sub('^(?<=Mac|Mc).', lambda m: m.group().upper(), last_name)

Вопрос: есть ли способ сделать это на Python менее извратно? Если есть, то какой.

Дмитрий Шурупов

А что тут извратного? По-моему, красиво ;-)

И я бы вместо '.' сделал '[a-z]', а вместо Mac|Mc — 'Ma?c’.

P.S. Не знаю. Подозреваю, что нет такого способа.

myst

Позитивная ретроспективная проверка не может быть переменной длинны. Получается

last_name = re.sub('^(?<=Mac).|^(?<=Mc).', lambda m: m.group().upper(), last_name)

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.