Python 3:如何为一系列字符拆分字符串?

时间:2017-01-07 13:44:04

标签: string python-3.x

我希望在出现大写字符的地方拆分字符串。 例如 - 如果string是StackOverflow 分裂应该给我['Stack','Overflow'] 单词可能在列表中,也可能不在列表中,但应该是分开的。 我该怎么做?

编辑:

如果没有正则表达式怎么做?

1 个答案:

答案 0 :(得分:2)

您可以导入re模块并使用 regex

>>> import re
>>> re.findall('[A-Z][^A-Z]*', 'StackOverflow')
['Stack', 'Overflow']

解释

  • 匹配[A-Z]

    下方列表中的单个字符
    • A-Z A(ASCII 65)和Z(ASCII 90)范围内的单个字符(区分大小写)
  • 匹配[^A-Z]*

    下方列表中不存在的单个字符
    • ^表示开始字符串
    • *量词 - 在零和无限时间之间匹配,尽可能多次,根据需要返回(贪婪)AZ在A(ASCII 65)和Z(ASCII 90)之间的范围内的单个字符(区分大小写)