Нужна помощь с регулярными выражениями. Я хочу сопоставить некоторые римские цифры и заменить их на арабский.Python regex. Соответствие и замена римских цифр
Прежде всего, если использовать (IX|IV|V?I{0,3})
для соответствия римским цифрам (от 1 до 9). Тогда я добавить некоторую логику в любом пространстве (с текстом до) или ничего (начала/конца строки) с (?:^|\s)(?:\s|$)
Так Finaly я уже (?:^|\s)(IX|IV|V?I{0,3})(?:\s|$)
Он соответствует всем этим вариантам:
- некоторого текст VI
- IX здесь мы
- другого текст III
Если я определяю dict с римско-арабской картой {'iii': 3, 'IX': 9}
- как отменить сопоставления со значениями из dict? Кроме того, он соответствует только первый accur, то есть в some V then III
я получаю только V
Это работает, но у меня ошибка в регулярном выражении. С римскими числами пробелы также удаляются. 'star wars IV' преобразуется в' star wars4' или 'some III text' в' some3text' –
@DigitalGod добавляет дополнительные пробелы в вашу подходящую группу 1, например: https://regex101.com/r/zA7lX5/1 – timgeb
Я мало знаю о регулярных выражениях, но спасибо за помощь :) –