У меня есть файл, формат которого я изменяю с помощью скрипта Python. В этом файле у меня есть несколько строк в верблюжьей оболочке, в которые я просто хочу вставить один пробел перед заглавной буквой - поэтому «WordWordWord» становится «Word Word Word», но у меня также есть некоторые сокращения, как в тексте «Генеральный менеджер или VP».
Я нашел ответ от Дэвида Андерхилла в этом посте:
Pythonic способ вставить пробел перед заглавными буквами
Хотя этот ответ помогает мне не вставлять пробелы между аббревиатурами внутри текста, например «DaveIsAFKRightNow! Cool»
Но он обязательно вставляет пробел между V и P в «VP».
У меня только 25 очков опыта, и я не могу комментировать существующее сообщение, у меня нет другого выбора, кроме как создать еще одно сообщение для решения проблемы подобного рода.
Я не так хорош в RegEx и не могу понять, как справиться с этой ситуацией.
Я пробовал это:
re_outer = re.compile(r'([^A-Z ])([A-Z])')
re_inner = re.compile(r'(?<!^)([A-Z])([^A-Z])')
re_outer.sub(r'\1 \2', re_inner.sub(r' \1\2', 'DaveIsAFKRightNow!Cool'))
Это дает мне «Дейв АФК прямо сейчас! Cool '
Пример моего текста:
General Manager or VP Torrance, CARequired education
Я хочу вывод как: General Manager or VP Torrance, CA Required education
Вывод, который я получаю: General Manager or V P Torrance, CA Required education