在大写字母之前添加空格的Pythonic方法当且仅当前一封信不是资本时

时间:2014-09-04 20:33:09

标签: python regex

正如标题所说,我想在大写字母之前添加空格,但前提是前一个字母不是大写字母。因此'HelloCHARLIE this isBob.'应该成为'Hello CHARLIE this is Bob.'

2 个答案:

答案 0 :(得分:1)

(?<![A-Z])(?<!^)([A-Z])

print re.sub(r"(?<![A-Z])(?<!^)([A-Z])",r" \1",x)

这是有效的。参见demo.Use负向lookbehind以确保前面的字符不是Capital或字符串的开头。

参见演示。

http://regex101.com/r/cH8vN2/1

答案 1 :(得分:1)

一种解决方案是

import re
string = 'HelloCHARLIE this isBob.'
re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', string)

打印

'Hello CHARLIE this is Bob.'