python - 如果大写字母前后有一个小写字母,则插入空格 - Python
问题描述
如果空格包含大写字母(但不是第一个字母),有没有办法插入空格?
例如,给定"RegularExpression"我想获得"Regular Expression"。
我尝试了以下正则表达式:
re.sub("[a-z]{1}[A-Z][a-z]{1}", " ","regularExpression")
不幸的是,这会删除匹配模式:
regula pression
我更喜欢正则表达式解决方案,但会感谢任何可行的解决方案。谢谢!
解决方案
In [1]: s = 'RegularExpression'
In [2]: answer = []
In [3]: breaks = [i for i,char in enumerate(s) if char.isupper()]
In [4]: breaks = breaks[1:]
In [5]: answer.append(s[:breaks[0]])
In [6]: for start,end in zip(breaks, breaks[1:]):
...: answer.append(s[start:end])
...:
In [7]: answer.append(s[breaks[-1]:])
In [8]: answer
Out[8]: ['Regular', 'Expression']
In [9]: print(' '.join(answer))
Regular Expression
推荐阅读
- image-processing - 基于特征匹配的图像搜索应用开发
- android - Lint 报告“命名空间中的硬编码包”
- javascript - 将参数从javascript传递给控制器
- apache-spark - 为什么输入类型 Spark UDF 是结构列的行?它是如何在 Spark 中实现的?
- android - 如何获取当前位置而不是最后一个位置?
- javascript - Firebase beforeeach() 多次触发(Vue 应用程序)
- javascript - 警告:组件正在更改要控制的文本类型的不受控输入
- python - 在odoo 10中创建新对象后如何调用我的方法?
- php - 如何摆脱这些点?
- python - 如何使用 python Matplotlib 将刻度标签格式化为地理位置格式?