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

如何使用Python正则实现整词匹配、打印对应行并统计单词出现次数?

正确实现代码

原代码问题梳理

  • 字符串格式化未加f前缀,\b{y}\b无法正确插值,且\b作为退格转义符需要用raw字符串才能表示正则规则里的单词边界
  • 匹配逻辑错误,直接用in无法实现不区分大小写的整词匹配,判断条件误写为z in text,应该匹配当前行的内容
  • return缩进错误,放在for循环内部会导致第一次循环就直接返回结果
  • 只统计了匹配行数,没有统计单行文本内的多次匹配次数

可运行实现

import re

# 你提供的原始文本列表
text = ['Hi my name is Jackson. Hello. Hello my name is Sofia.',
        'Hi Sofia, Hello!',
        'hello Jackson',
        'hi',
        'hi, Hello123',
        'hi',
        'Helllo, HeLlo']

def func(y):
    counter = 0
    # 编译正则规则:单词边界+转义目标词+单词边界,开启不区分大小写匹配
    pattern = re.compile(rf'\b{re.escape(y)}\b', flags=re.IGNORECASE)
    for x in text:
        # 查找当前行所有符合规则的匹配项
        matches = pattern.findall(x)
        match_count = len(matches)
        if match_count > 0:
            # 存在匹配就打印当前行
            print(x)
            counter += match_count
    # 遍历完全部行后再返回总匹配次数
    return counter

效果验证

调用func('hello')时会依次打印3行匹配内容:

Hi my name is Jackson. Hello. Hello my name is Sofia.
Hi Sofia, Hello!
hello Jackson

最终返回值为4,符合预期:第一行匹配2次Hello,第二行匹配1次Hello,第三行匹配1次hello,总次数为4;Hello123后缀带数字不符合整词规则被排除,Helllo多了一个l也被排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:54:03