Skip to main content
 首页 » 编程设计

python之找到两个或多个连续的单词以大写开头并替换为它们的缩写(正则表达式)

2024年11月01日35tuyile006

我想替换两个或多个以大写字符开头的连续单词,并用它们的缩写替换它们,我设法找到了带有

的单词
def find(name): 
        return re.findall('([A-Z][a-z]+(?=\s[A-Z])(?:\s[A-Z][a-z]+)+)', name) 

但是当我尝试替换单词时我就是做不到

这是我得到的

import re 
 
 
def main(): 
    name = raw_input(" Enter name: ") 
 
    print find(name) 
 
 
def find(name): 
    return re.sub(r'([A-Z][a-z]+(?=\s[A-Z])(?:\s[A-Z][a-z]+)+)', replacement, name) 
 
 
def replacement(match): 
    return match.group[0].upper() 
 
main() 

例如

输入:我参加了年度股东大会。 输出:我去了年度股东大会。

感谢任何帮助

请您参考如下方法:

如果您按如下方式修改您的替换函数,您的示例应该可以正常工作:

def replacement(match): 
    return ''.join(y[0] for y in m.group(0).split())