我有一个字符串如下:theatre = 'Regal Crown Center Stadium 14'
我想根据每个单词的第一个字母将其分解为首字母缩略词,但也包括两个数字:
期望输出='RCCS14'
我的代码尝试如下:acronym = "".join(word[0] for word in theatre.lower().split())
acronym = "".join(word[0].lower() for word in re.findall("(\w+)", theatre))
acronym = "".join(word[0].lower() for word in re.findall("(\w+ | \d{1,2})", theatre))
acronym = re.search(r"\b(\w+ | \d{1,2})", theatre)
在这篇文章中,我得到了这样的结论:rccs1
,但似乎无法捕捉到最后一个数字。也可能有这样的情况:数字也在名称的中间:'Regal Crown Center 14 Stadium'
。蒂娅!在
See regex in use here
(?:(?<=\s)|^)
确保前面的是空格或行首(?:[a-z]|\d+)
匹配单个字母或一个或多个数字i
标志(re.I
在python中)允许[a-z]
匹配其大写变体。在See code in use here
^{pr2}$上面的代码查找正则表达式匹配的所有实例,并将列表项联接到单个字符串中。在
结果:
RCCS14
我不能评论,因为我没有足够的声誉,但S.Jovan的答案并不令人满意,因为它假设每个单词都以大写字母开头,每个单词只有一个大写字母。在
将返回
'RCCSYBFIEUBFBDBUUFGFUEH14'
然而,在这种情况下,ctwheels答案仍然有效:
^{pr2}$将打印
您可以使用
re.sub()
删除所有小写字母和空格。在正则表达式:^{}
详细信息:
[]+
将列表中的一个字符与 无限次Python代码:
输出:
RCCS14
Code demo
相关问题 更多 >
编程相关推荐