【发布时间】:2019-10-14 00:35:51
【问题描述】:
我有一个文件,我正在通过 python 脚本更改其格式。我在这个文件中有几个驼峰式字符串,我只想在大写字母之前插入一个空格 - 所以“WordWordWord”变成了“Word Word Word”,但我也有一些缩写,比如文本“总经理或副总裁”。
我在这篇文章中找到了 David Underhill 的答案:
A pythonic way to insert a space before capital letters
虽然这个答案可以帮助我不在“DaveIsAFKRightNow!Cool”等文本中的缩写之间插入空格
但它肯定会在“VP”中的 V 和 P 之间插入一个空格。
我只有 25 点经验值,无法对现有帖子发表评论,我别无选择,只能针对此类问题创建另一个帖子。
我不太擅长 RegEx,也不知道如何处理这种情况。
我试过这个:
re_outer = re.compile(r'([^A-Z ])([A-Z])')
re_inner = re.compile(r'(?<!^)([A-Z])([^A-Z])')
re_outer.sub(r'\1 \2', re_inner.sub(r' \1\2', 'DaveIsAFKRightNow!Cool'))
它给了我“戴夫现在是 AFK!酷'
我的文本示例是这样的:
General Manager or VP Torrance, CARequired education
我希望输出为:General Manager or VP Torrance, CA Required education
我得到的输出是:General Manager or V P Torrance, CA Required education
【问题讨论】:
-
@stackoverflow.com/users/164602/david-underhill 你能帮我对你的答案做一个小的改进吗? TIA
-
也许使用替代regex101.com/r/EQx7NJ/1
标签: regex python-3.x