Python 中 str.contains() 处理括号字符串的正确用法
发布时间 - 2026-01-22 00:00:00 点击率:次pandas 的 `str.contains()` 默认启用正则表达式模式,而圆括号 `()` 是正则元字符,直接匹配含括号的字符串会报错或失败;解决方法是禁用正则(`regex=false`)或对特殊字符进行转义。
在使用 Pandas 进行文本筛选与替换时,str.contains() 是一个高频方法。但许多开发者初次遇到包含括号、点号、星号等正则特殊字符的字符串时,会发现匹配“失效”——例如以下代码:
import pandas as pd df = pd.DataFrame([['Table 1 (not in use after 1 Apr 2025)'], ['wefwfe'], ['eqv']], columns=['Venue']) # ❌ 错误:默认 regex=True,( ) 被解释为正则分组,导致语法错误或无匹配 df.loc[df['Venue'].str.contains('Table 1 (not in use after 1 Apr 2025)'), 'Venue'] = 'Table'
运行时可能抛出 re.error: missing ) 等异常,或静默返回空结果——这是因为 str.contains() 默认将输入字符串当作正则表达式解析,而未转义的 ( 和 ) 在正则中需成对出现并具有分组语义。
✅ 正确做法有两种:
方案一:显式关闭正则(推荐用于纯文本匹配)
设置 regex=False,此时字符串按字面量(literal)精确匹配,无需转义:
df.loc[df['Venue'].str.contains('1 (not in use after 1 Apr 2025)', regex=False), 'Venue'] = 'Table'方案二:使用原始字符串 + 手动转义
若需保留正则能力(如模糊匹配),应对元字符添加反斜杠,并推荐使用原始字符串(r'')避免 Python 字符串转义干扰:
df.loc[df['Venue'].str.contains(r'1 \(not in use after 1 Apr 2025\)', regex=True), 'Venue'] = 'Table'
⚠️ 注意事项:
- regex=False 性能更优,且语义清晰,只要不需要正则功能,应优先选用;
- 若字符串含多个正则元字符(如 ., *, +, ?, [, ] 等),regex=False 可彻底规避转义复杂性;
- 避免混用 loc 链式赋值(如 .loc[...].values = ...),应统一使用 df.loc[condition, col] = value 写法,确保操作安全;
- 对空值(NaN)敏感:str.contains() 默认跳过 NaN,如需控制可传入 na=False(返回 False)或 na=True(返回 True)。
最终输出符合预期:
Venue 0 Table 1 wefwfe 2 eqv
掌握 regex 参数的含义与取舍,是写出健壮、可维护字符串处理逻辑的关键一步。
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
iOS发送验证码倒计时应用
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何用PHP工具快速搭建高效网站?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
JavaScript常见的五种数组去重的方式
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
简历没回改:利用AI润色让你的文字更专业
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
iOS中将个别页面强制横屏其他页面竖屏
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
java获取注册ip实例
南京网站制作费用,南京远驱官方网站?
如何快速搭建二级域名独立网站?
如何快速搭建高效可靠的建站解决方案?
如何快速上传建站程序避免常见错误?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
EditPlus中的正则表达式 实战(4)
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何在云主机上快速搭建网站?
Laravel如何实现模型的全局作用域?(Global Scope示例)
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在Tomcat中配置并部署网站项目?
如何在阿里云完成域名注册与建站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
网站建设保证美观性,需要考虑的几点问题!
装修招标网站设计制作流程,装修招标流程?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
JavaScript如何实现继承_有哪些常用方法
JS弹性运动实现方法分析
如何在橙子建站中快速调整背景颜色?
如何快速搭建高效简练网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
如何实现javascript表单验证_正则表达式有哪些实用技巧
轻松掌握MySQL函数中的last_insert_id()
网站优化排名时,需要考虑哪些问题呢?
JavaScript Ajax实现异步通信
如何在万网利用已有域名快速建站?
Laravel如何实现数据库事务?(DB Facade示例)


