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

Python中查找并替换含location_ids的方括号子串

替换字符串中包含特定关键词的方括号子串

完全可以实现,用正则表达式就能精准匹配并替换所有包含u'location_ids'的方括号子串,具体方案如下:

正则匹配模式

使用非贪婪匹配的正则表达式,确保只捕获单个包含目标关键词的方括号片段:

\[.*?u\'location_ids\'.*?\]

各部分含义:

  • \[:转义匹配左方括号(避免被正则解析为字符组)
  • .*?:非贪婪匹配任意字符,直到找到目标关键词
  • u\'location_ids\':精准匹配目标关键词(转义单引号避免语法冲突)
  • .*?:继续非贪婪匹配,直到遇到右方括号
  • \]:转义匹配右方括号

完整Python示例代码

import re

# 原始字符串
txt = """{u'lang': u'en_US', u'tz': u'Canada/Eastern', u'uid': 1, u'dashboard_merge_domains_contexts': False,      u'group_by': [], u'params': {u'action': 315}} domain="[[u'state', u'!=', u'done'], [u'state', u'!=', u'cancel'], [u'state', u'!=', u'draft'],      [u'location_ids', u'ilike', u'WH07'], [u'state', u'!=', u'done'], [u'state', u'!=', u'cancel'], [u'state', u'!=', u'draft'],      [u'location_ids', u'=', u'WH123']]"""

# 自定义替换后的新字符串
new_substr = "[u'location_ids', u'in', u['WH07', 'WH123']]"

# 执行替换操作
processed_txt = re.sub(r'\[.*?u\'location_ids\'.*?\]', new_substr, txt)

# 输出结果
print(processed_txt)

注意事项

  • 采用非贪婪模式.*?是关键,能避免误匹配从第一个左方括号到最后一个右方括号的大段内容,确保只替换单个包含目标关键词的方括号子串
  • 如果你的新字符串包含特殊字符(如[、]、\),需要在正则替换时对这些字符进行转义,或者使用re.escape()处理新字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:52:47