按大写字母拆分字符串,但忽略AAA Python Regex

2024-05-06 03:33:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我的正则表达式:

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

按大写字母拆分字符串,例如:

我叫乔。我的名字叫乔。我在AAA公司工作。


Tags: 字符串re公司大写字母名字splitvendoraaa
2条回答

您可以使用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,这意味着长度为<;1的任何大写字母组合如果您不想这样做,您可以简单地使用AAA。在

使用sub

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

相关问题 更多 >