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

正则表达式:如何在Properties文件等号后字符串中多次匹配目标内容

解决Properties文件值替换问题:仅修改等号后所有'old'为'new'

问题根源

你之前用的正则(?<=).*old之所以只能匹配到最后一个'old',是因为.*是贪婪匹配,它会从字符串开头一直匹配到最后一个'old'的前半部分,导致整个正则只命中一次,而不是等号后的每一个'old'。

方法一:精准正则匹配

用下面的正则可以匹配等号之后的每一个'old':

(?<==[^=]*?)old
  • (?<==[^=]*?) 是正向后顾断言:确保当前匹配的'old'前面是等号+任意非等号字符(非贪婪模式),这样就能锁定在等号之后的区域,逐个匹配每个'old'。
  • 替换时选择“全局替换”(比如正则引擎的g flag),就能把等号后的所有'old'换成'new'。

示例效果:

输入:message.document.old.text=This old document is very old and will stay old forever
输出:message.document.old.text=This new document is very new and will stay new forever

方法二:拆分字符串处理(更直观)

如果不想纠结正则,直接把字符串按第一个等号拆成键和值两部分,单独替换值里的内容再拼接,逻辑更简单,不易出错:

以Python为例:

original_line = "message.document.old.text=This old document is very old and will stay old forever"
# 按第一个等号拆分,得到键和值
key_part, value_part = original_line.split('=', 1)
# 替换值里的所有'old'
new_value = value_part.replace('old', 'new')
# 拼接成新行
new_line = f"{key_part}={new_value}"

执行后得到的new_line就是目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:05:32