按大写字母拆分字符串,但忽略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想要如何处理它们。