拆分在python中的大写字母组

时间:2015-06-02 14:10:34

标签: python regex string

我正在尝试使用大写字母作为分隔符号来标记许多字符串。我已经登陆了以下代码:

token = ([a for a in re.split(r'([A-Z][a-z]*)', "ABCowDog") if a])

print token

我按照预期得到了这个,作为回报:

  

['A','B','牛','狗']

现在,这只是一个让生活更轻松的示例字符串,但在我的情况下,我想通过这个列表找到单个字符(检查len()很简单)并将各个字母放在一起,只要它们相遇先前的定义。在上面的例子中,字符串'AB','Cow'和'Dog'是我实际想要形成的字符串(连续大写是首字母缩略词的一部分)。无论出于何种原因,一旦我获得了令牌,我就无法弄清楚如何走到列表中。很抱歉,如果这是一个简单的答案,但我对python很新,并且厌倦了撞到墙上。

3 个答案:

答案 0 :(得分:3)

re.split并不总是易于使用,在许多情况下似乎有时会受到限制。您可以使用re.findall尝试不同的方法:

>>> s = 'ABCowDog'
>>> re.findall(r'[A-Z](?:[A-Z]*(?![a-z])|[a-z]*)', s)
['AB', 'Cow', 'Dog']

答案 1 :(得分:1)

您可以使用以下内容与regex module分开:

.profile

请参阅DEMO

代码:

(?=[A-Z][a-z])

答案 2 :(得分:0)

([A-Z][a-z]+)

你应该这样分开。