首页 > 解决方案 > 仅提取首字母大写的整个单词

问题描述

我这里有一个文本文件需要分析,我感兴趣的只是首字母大写的整个单词,

例如:测试字符串:Everyday HOLDS the poSSibility Of A Miracle

我想捕捉: Everyday Of A Miracle

我目前正在尝试在 Python 中构建我的正则表达式,奇怪的是,我的正则表达式只能捕获第一个被大写的整个单词。

测试字符串:Everyday HOLDS the poSSibility Of A Miracle

我的正则表达式: ^([A-Z])?([a-z])+

捕获: Everyday

我在这里想念什么?

标签: pythonregexpython-3.x

解决方案


不要将正则表达式锚定在字符串的开头,而是使用边界检查:

import re
s = 'Everyday HOLDS the poSSibility Of A Miracle'
new_s = ' '.join(re.findall(r'\b[A-Z][a-z]+|\b[A-Z]\b', s))

输出:

'Everyday Of A Miracle'

推荐阅读