You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找字符串中以大写字母开头的单词?附示例

如何查找字符串中以大写字母开头的单词?

这是个很常见的文本处理需求,用Python的正则表达式模块re就能高效解决。下面是具体的实现步骤和示例:

核心思路

我们需要匹配以大写字母开头,后面跟0个或多个小写字母的完整单词,这里用正则的单词边界\b来确保我们提取的是独立单词,而非长单词的片段。

基础代码实现

import re

input_str = "The Persian League is the largest sport event dedicated to the deprived areas of Iran. The Persian League promotes peace and friendship. This video was captured by one of our heroes who wishes peace."

# 定义正则模式:匹配所有以大写字母开头的完整单词
pattern = r'\b[A-Z][a-z]*\b'
# 提取所有符合条件的单词
result = re.findall(pattern, input_str)

print(result)
# 输出:['The', 'Persian', 'League', 'Iran', 'The', 'Persian', 'League', 'This']

调整规则匹配专有名词(匹配你的预期输出)

如果你的需求是排除句首的普通单词(比如"The"、"This"),只提取文中的专有名词,可以用正则断言来调整匹配规则:

# 匹配前面不是字符串开头的大写单词,避开句首的The/This
pattern = r'(?<!^)\b[A-Z][a-z]*\b'
# 或者更精准:只匹配句中(句号+空格之后)的大写单词
pattern = r'(?<=\. )\b[A-Z][a-z]*\b'

result = re.findall(pattern, input_str)
print(result)
# 输出:['Persian', 'League', 'Iran', 'Persian', 'League']

正则模式拆解说明

  • \b:单词边界,确保匹配的是独立完整的单词
  • [A-Z]:匹配任意一个大写英文字母作为开头
  • [a-z]*:匹配0个或多个小写英文字母(允许像"Iran"这种单大写字母结尾的单词)
  • (?<!^):负向断言,排除字符串开头的单词
  • (?<=\. ):正向断言,仅匹配前面是句号加空格的单词(即句子中间的大写单词)

内容的提问来源于stack exchange,提问作者Farzin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:12:44