Python如何为单引号包裹且含点号的token添加str(row[...])包装
Python正则替换实现方案
核心逻辑使用Python内置的re模块的替换方法,匹配同时满足「被单引号包裹、内部包含.字符」的内容,再按要求拼接包装即可。
完整可运行代码
import re # 原始字符串 origin_str = "test = \"if 'col.A' not null and if 'col.B' not 'null'" # 正则匹配规则:匹配被单引号包裹且内部含.的内容 pattern = r"'([^']*\.[^']*)'" # 替换规则:\1指代匹配到的单引号内部的内容 result = re.sub(pattern, r"str(row['\1'])", origin_str) print(result)
正则规则说明
- 开头和结尾的
'匹配单引号的边界,确保内容被单引号包裹 - 括号
()为捕获组,用来提取单引号中间的有效内容 [^']*匹配0个或多个非单引号的字符,避免匹配到超出当前单引号的内容\.专门匹配.字符(正则中.本身是通配符,需要加反斜杠转义才能匹配字面量的点)
运行结果验证
输出内容和你期望的结果完全一致:
test = "if str(row['col.A']) not null and if str(row['col.B']) not 'null'
内容的提问来源于stack exchange,提问作者Fazli
相关产品推荐
相关产品推荐

