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

Pandas正则匹配问题:如何删除含特殊字符或指定完整单词的行

问题分析与解决

你的代码问题出在正则表达式的逻辑和语法错误,导致无法匹配到完整单词'word'的行,具体问题点如下:

  • 正则表达式语法错误:你写的r'[@#%+*=](word))'里,括号使用错误且多了一个右括号,同时没有用|表示“或”的关系。这个表达式实际是在匹配「特殊字符 + (word)」这样的组合,完全不会匹配单独的'word'字符串。
  • 缺少单词边界:要匹配完整的单词'word',需要用\b标记单词边界,确保只匹配独立的完整单词,避免误匹配包含'word'的其他字符串(比如'wording')。

修正后的代码

df = df[~df['col'].str.contains(r'[@#%+*=]|\bword\b', regex=True)]

代码解释

  • [@#%+*=]:匹配任意一个指定的特殊字符;
  • |:正则中的“或”操作符,分隔两个匹配规则;
  • \bword\b:\b是单词边界,确保只匹配独立的完整单词'word';
  • ~:取反操作,保留不满足匹配条件的行;
  • 注意df[col]要改成df['col'],否则会把col当作变量而非列名。

执行这段代码后,原数据中的'ahoi*'(含特殊字符)和'word'(完整单词)都会被过滤,最终只保留'be'所在的行,符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:10:23