Если вам приходится иметь дело с CAMEL словами, вы можете использовать следующее регулярное выражение:
([a-z])([A-Z])
Он захватывает строчную букву и следующую заглавную один, а затем в замене, можно добавить обратные ссылки к захваченным группам (\1
и \2
).
import re
p = re.compile(r'([a-z])([A-Z])')
test_str = "HotelCityClass"
result = re.sub(p, r"\1 \2", test_str)
print(result)
См IDEONE demo
Обратите внимание, что в случае, если вы хотите просто вставить пробел перед любым капитализированных словом, не предшествуют с пробелами, я хотел бы использовать
p = re.compile(r'(\S)([A-Z])')
result = re.sub(p, r"\1 \2", test_str)
См another IDEONE demo
Я бы не стал смотреть в будущее, потому что они всегда затрудняют работу (хотя в этом случае воздействие слишком мало).
Что такое '' ur''? – Prometheus
'r' используется для сырых строк, а' u' для поддержки Unicode. – anubhava