如何用正则表达式为字符串中row[...]格式内容包裹str()函数
正确实现方案
首先导入re模块后使用如下替换逻辑:
import re test = "if row['adm.w'] is 'Bad' and row['rem'] not empty" # 核心正则替换语句 result = re.sub(r'(row\[[^\]]+\])', r'str(\1)', test)
执行后输出的result内容完全符合预期:
if str(row['adm.w']) is 'Bad' and str(row['rem']) not empty
正则逻辑说明
- 正则规则
(row\[[^\]]+\])是一个捕获组,精准匹配所有row[...]格式的标记:row\[严格匹配开头的row[字符[^\]]+匹配除了闭合方括号]之外的任意字符,保证匹配范围不会超出当前row[...]的边界\]匹配结尾的闭合方括号
- 替换规则
str(\1)直接把捕获到的整个row[...]片段放到str()的括号内,不需要额外拼接其他内容。
原正则的问题说明
你之前写的正则匹配逻辑是匹配单引号包裹的内容,既会错误匹配到'Bad'这类非目标片段,替换规则也错误丢掉了row关键字,所以无法得到预期结果。
内容的提问来源于stack exchange,提问作者Fazli
相关产品推荐
相关产品推荐

