在python中拆分一组大写字母



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

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

正如预期的那样,我得到了回报:

[A','B','Cow','Dog']

现在,这只是一个让生活更轻松的示例字符串,但在我的情况下,我想浏览这个列表,找到单个字符(通过检查len((很容易(,并将单个字母组合在一起,前提是它们符合先前的定义。在上面的例子中,字符串"AB"、"Cow"one_answers"Dog"是我实际想要形成的字符串(连续的大写字母是首字母缩写的一部分(。无论出于什么原因,一旦我有了代币,我就无法想出如何在列表中行走。如果这是一个简单的答案,我很抱歉,但我对蟒蛇还很陌生,厌倦了把头撞在墙上。

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

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

您可以使用以下命令与regex模块进行拆分:

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

参见DEMO

代码:

regex.split(r'(?=[A-Z][a-z])', "ABCowDog",flags=regex.VERSION1)
([A-Z][a-z]+)

你应该就此分开。

最新更新