Python从每个单词的第一个字符创建首字母缩略词,并包含数字

2024-09-21 05:43:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串如下:
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'。蒂娅!在


Tags: inrefor字母数字lowerwordcenter
3条回答

See regex in use here

(?:(?<=\s)|^)(?:[a-z]|\d+)
  • (?:(?<=\s)|^)确保前面的是空格或行首
  • (?:[a-z]|\d+)匹配单个字母或一个或多个数字

i标志(re.I在python中)允许[a-z]匹配其大写变体。在

See code in use here

^{pr2}$

上面的代码查找正则表达式匹配的所有实例,并将列表项联接到单个字符串中。在

结果:RCCS14

我不能评论,因为我没有足够的声誉,但S.Jovan的答案并不令人满意,因为它假设每个单词都以大写字母开头,每个单词只有一个大写字母。在

re.sub(r'[a-z ]+', '', "Regal Crown Center Stadium YB FIEUBFB DBUUFG FUEH  14")

将返回'RCCSYBFIEUBFBDBUUFGFUEH14'

然而,在这种情况下,ctwheels答案仍然有效:

^{pr2}$

将打印

RCCSYFDF14

您可以使用re.sub()删除所有小写字母和空格。在

正则表达式^{}

详细信息:

  • []+将列表中的一个字符与 无限次

Python代码

re.sub(r'[a-z ]+', '', theatre)

输出:RCCS14

Code demo

相关问题 更多 >

    热门问题