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

比较两个pandas DataFrame做词数匹配时报正则括号不平衡错如何解决?

报错原因与解决方案

报错产生原因

这个是正则表达式语法错误,错误原因是你从frequentList中提取的unique_words列表里包含正则元字符,比如(、)、*、+、|等在正则中有特殊作用的符号。如果其中某个单词带有未配对的括号,拼接成正则模式后就会破坏整体语法,触发括号不匹配的报错。
你手动赋值的['word1', 'word2', 'word3']都不包含正则特殊字符,所以运行正常。

解决方法

在拼接正则模式前,对每个单词做正则元字符转义,使用re.escape()方法即可自动把所有特殊字符转为普通字符,不影响正常匹配。
修改后的代码如下:

import re

unique_words = frequentList['unique_values'].tolist()
# 逐个转义单词的正则特殊字符后再拼接模式
pattern = r'\b{}\b'.format('|'.join(re.escape(word) for word in unique_words))
fulltext['count'] = fulltext['text_value'].str.count(pattern)

补充说明

如果你的单词存在非字母/数字开头/结尾的情况,\b单词边界可能不符合预期的匹配逻辑,可以根据实际业务场景调整边界规则,比如替换为匹配字符串首尾、前后空格等规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:06:03