如何用Go正则单次匹配合并JSON字符串中id与phone_id值为新字符串?
问题解答
- 该需求可以实现
- 具体实现方式:
- 编写可捕获目标字段值的正则表达式:
适配任意非双引号取值的通用版本:
仅针对数字取值的精简版本:^.*?"id":"([^"]+)",\s*"phone_id":"([^"]+)".*$^.*?"id":"(\d+)",\s*"phone_id":"(\d+)".*$ - 借助Go语言正则的替换能力,将匹配结果替换为
$1.$2(其中$1对应第一个捕获组的id值,$2对应第二个捕获组的phone_id值),即可直接得到"123.456"格式的结果。
- 编写可捕获目标字段值的正则表达式:
补充说明
你之前的正则失效原因是:正则中的.是字面量匹配,但原字符串里id和phone_id之间是",而非点号,导致无法匹配完整内容。新正则会匹配整个JSON字符串,跳过无关内容精准捕获两个目标字段的取值,再通过替换语法直接合并成目标格式。
内容的提问来源于stack exchange,提问作者Sergey Bakotin
相关产品推荐
相关产品推荐

