按大写字母拆分字符串,但忽略AAA Python正则表达式

按大写字母拆分字符串,但忽略AAA Python正则表达式,python,regex,python-3.x,Python,Regex,Python 3.x,我的正则表达式: vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) vendor=“MyNameIsJoe.I'mWorkerinaaInc.” ven=re.split(r’(?您可以使用re.findall()来查找期望的单词,而不是拆分: In [46]: ' '.join(re.findall(r'[A-Z]?[^A-Z\s]+|

我的正则表达式:

vendor = "MyNameIsJoe. I'mWorkerInAAAinc."
ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor)
vendor=“MyNameIsJoe.I'mWorkerinaaInc.”

ven=re.split(r’(?您可以使用
re.findall()
来查找期望的单词,而不是拆分:

In [46]: ' '.join(re.findall(r'[A-Z]?[^A-Z\s]+|[A-Z]+', vendor))
Out[46]: "My Name Is Joe. I'm Worker In AAA inc."

请注意,此选项
[A-Z]+
将与
AAA
匹配,这意味着使用
sub
将大写字母的长度组合成:

re.sub(r'([a-z])([A-Z])|(?<=[A-Z])([A-Z]+)', r'\g<3>\g<1> \g<2>', vendor)

re.sub(r'([a-z])([a-z])|(?如果在
vendor
中将
AAA
更改为
AA
则不起作用。在AAA上拆分字符串,然后在其余字符串上应用正则表达式不是更好吗?@Harvey我刚才提到过。关于从
AAA
拆分,我认为这不是一个好方法,因为必须遍历字符串两三次es.Re:AA,它不起作用。它应该返回“我的名字是乔,我是A公司的员工。”如果我们太迂腐,AAAA也不起作用。我在回答中描述了这一点,可能还有很多其他情况,但这完全取决于OP想要如何处理它们。