Я благодарю coffee- дробилку за то, что задал мне вопрос несколько часов назад. Теперь, когда я член, я хотел бы немного перефразировать вопрос.
Каков наилучший способ заявить, что инициализация word- преобразуется в '$', а остальная часть 's' преобразуется в '5', используя регулярные выражения и python?
Я попытался сделать это в следующем коде, но результат неверен. Общее правило для 's' преобразования является жадным и не дает правилу word- initial 's', чтобы вступить в игру. Я был бы признателен за любую помощь в этом. Спасибо.
text = 'sassy'
for (regexp,subst) in [ (r's', '5'),(r'^s', '$') ]:
text = re.sub(regexp,subst,text)
...
text
5A55y
Вы просто не достаточно конкретны. Вам нужно подтверждение non- zero lookbehind на первом.
>>> text = 'sassy'
>>> for (regexp,subst) in [ (r'(?<=.)s', '5'),(r'^s', '$') ]:
... text = re.sub(regexp,subst,text)
...
>>> text
'$a55y'
Это или измените порядок.
Все ставки выходят, когда одна из ваших подстановок вступает в другое совпадение.