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

Bash中如何在含=和;的字符串分号前批量追加星号

问题说明

现有如下格式的字符串:

paramone=somerandomvalue; paramtwo=somerandomvalue; paramthree=somerandomvalue;

需要在每一个等号对应的取值末尾、分号之前追加*星号,处理后期望效果如下:

paramone=somerandomvalue*; paramtwo=somerandomvalue*; paramthree=somerandomvalue*;

处理规则:

  • 仅对同时包含=和;的键值对片段执行追加操作
  • 仅带分号但没有等号的普通字符串片段不做任何修改

解决方法

直接用正则替换就能实现,通用匹配规则:

  • 查找正则:=([^;]*);
  • 替换内容:=$1*;

规则逻辑

  1. 先匹配=字符,锁定键值对的赋值位置,自动过滤掉没有等号的普通分号片段
  2. 捕获等号之后、下一个分号之前的所有内容,也就是需要追加星号的value部分
  3. 匹配片段末尾的分号
  4. 替换时保留原有的等号、value值、分号,只在value和分号之间插入*,不会改动原有内容结构

不同场景的使用示例

Python代码实现

import re

raw_text = "paramone=somerandomvalue; paramtwo=somerandomvalue; paramthree=somerandomvalue; plain_text_with_semicolon;"
result = re.sub(r'=([^;]*);', r'=\1*;', raw_text)
print(result)

运行输出:

paramone=somerandomvalue*; paramtwo=somerandomvalue*; paramthree=somerandomvalue*; plain_text_with_semicolon;

可以看到没有等号的plain_text_with_semicolon;片段未被修改,完全符合规则要求。

文本编辑器批量替换

如果是在VS Code、Notepad++、Sublime Text这类支持正则替换的编辑器里处理文本,直接打开替换面板,勾选「正则表达式」选项,查找内容填=([^;]*);,替换为填=$1*;,执行全部替换即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:00:54