Python RgEx:提取第一个连续的大写字母

2024-06-16 11:08:05 发布

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

我有一些新闻标题,我想摘录标题中涉及的公司名称。下面是一个例子

headlines = [
    "Chicago Policemen's Annuity & Benefit Fund hired Chicago Equity Partners to manage $50 million in active U.S. smidcap value equity.",
    "Belmont Contributory Retirement System is searching for at least one U.S. small-cap equity manager to run initially up to $5 million.",
    "Phoenix Employees' Deferred Compensation Board will begin a search for an investment consultant before the end of February."    
]

如您所见,这里的模式是,感兴趣的公司名称是第一个大写单词链。第二个大写单词链是第二个公司。你知道吗

在我们的示例中,我想返回两个变量,它们都与提取连续的大写字母有关。因此,它将返还“芝加哥警察年金和福利基金”、“贝尔蒙特缴费退休制度”和“凤凰城员工递延薪酬委员会”

有没有办法用Python中的正则表达式进行提取?你知道吗


Tags: to名称标题for公司单词例子大写
3条回答

此正则表达式将找到标题样式的表达式:

((?:[A-Z][a-z\']+ ?)| & ){2,}(?= \b)

您可以看到完整的测试here

对于给定的示例,maybe is是一个选项,用于匹配连续的大写单词,直到遇到空格和小写字符或字符串结尾。你知道吗

^{}

解释

  • 从字符串的开头^
  • 非捕获群(?:
    • 匹配大写字符[A-Z]
    • 不匹配大写字符一次或多次非贪婪[A-Z]+?
  • 关闭捕获组)+并重复一次或多次
  • 一个积极的前瞻(?=,断言接下来的是
    • 后跟小写字符的空格[a-z]
    • |
    • 字符串的结尾$
  • 关闭正向前瞻)

在这种情况下,匹配将停止,直到遇到空格和小写字符为止,但是您可以将character类扩展到[a-z&],以便在遇到空格和符号时停止匹配。你知道吗

只是为了让你走上正确的方向

步骤1:分割字符串(分隔符是空格)

步骤2:检查位置0处的字符是否大写

步骤3:将子字符串添加/附加到your company name

第四步:重复第二步和第三步,直到第二步失败,然后你有你的公司名称。你知道吗

有关切片的更多帮助: https://www.pythoncentral.io/cutting-and-slicing-strings-in-python/

相关问题 更多 >