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

Python正则表达式提取冒号前目标内容的问题求助

解决方法

你需要匹配的是冒号前最后一段包含字母、空格的内容(含冒号),之前用的正则\w*(?=.*:)会匹配所有满足“后面有冒号”的单词片段,所以才返回大量无关内容。

推荐使用以下正则方案:

import re

# 示例文本集合
texts = [
    "Morgan Stanley.Erik Woodring: ",
    "market.Operator: ",
    "to acquire?Tim Cook:"
]

# 正则模式:定位结尾处由字母、空格组成且以冒号收尾的内容
pattern = r'([\w\s]+:)\s*$'

for text in texts:
    match = re.search(pattern, text)
    if match:
        print(match.group(1))

运行结果:

Erik Woodring:
Operator:
Tim Cook:

正则说明

  • [\w\s]+:匹配1个及以上的字母、数字、下划线或空格,覆盖名称里的空格场景
  • ::精准匹配冒号本身
  • \s*$:匹配结尾处的任意空白字符(如果存在),确保定位到内容末尾

如果你的文本中名称前的分隔符固定是.或?,也可以用更精准的正向断言:

pattern = r'(?<=[.?])[\w\s]+:'

这个模式会直接匹配.或?之后的名称+冒号,同样能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:15:35