回答(12)
2 years ago
这是另一种正则表达式解决方案 . 该问题可以被称为“如何在执行拆分之前在每个大写字母之前插入空格”:
>>> s = "TheLongAndWindingRoad ABC A123B45"
>>> re.sub( r"([A-Z])", r" \1", s).split()
['The', 'Long', 'And', 'Winding', 'Road', 'A', 'B', 'C', 'A123', 'B45']
这具有保留所有非空白字符的优点,而大多数其他解决方案则不能 .
2 years ago
import re
filter(None, re.split("([A-Z][^A-Z]*)", "TheLongAndWindingRoad"))
要么
[s for s in re.split("([A-Z][^A-Z]*)", "TheLongAndWindingRoad") if s]
2 years ago
src = 'TheLongAndWindingRoad'
glue = ' '
result = ''.join(glue + x if x.isupper() else x for x in src).strip(glue).split(glue)
2 years ago
不使用正则表达式或枚举的替代方法:
word = 'TheLongAndWindingRoad'
list = [x for x in word]
for char in list:
i