首页 文章

只提取第一个字母大写的全字

提问于
浏览
1

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

例如:test string: Everyday HOLDS the poSSibility Of A Miracle

我想拍摄: Everyday Of A Miracle

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

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

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

捕获: Everyday

我在这里想念的是什么?

2 回答

  • 0

    没有正则表达式(仅当单词由空格分隔时):

    >>> s='Everyday HOLDS the poSSibility Of A Miracle'
    >>> [x for x in s.split() if x.title()==x]
    ['Everyday', 'Of', 'A', 'Miracle']
    

    请注意,您还可以使用re.split分割任何非字母字符 .

  • 4

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

    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'
    

相关问题