修改"字符串" txt doc里面的值

时间:2015-08-17 20:08:47

标签: javascript regex node.js

我用readFile方法读取了一个文本文档,我得到了当前的字符串。 我需要修改里面的一些特定字段并保存文件并保留原始格式

在读取文件中我得到了以下字符串,我需要将属性 INSTANCE_ADDR 的数字从3000更改为4000并保持相同的格式,问题是该值3000可以是任何数字,所以我需要找到键 INSTANCE_ADDR ,然后以某种方式更新值并保持相同的格式,我应该怎么做?

"BASH_VERSINFO=([0]=\"3\" [1]=\"2\" [2]=\"51\" [3]=\"1\" [4]=\"release\" [5]=\"x86_64-suse-linux-gnu\")\r\nBASH_VERSION='3.2.51(1)-release'\r\nINSTANCE_ADDR=10.97.27.7:3000\r\\r\n"

我使用fs.readFile(filePath, 'utf8'),响应是此内容

1 个答案:

答案 0 :(得分:4)

(INSTANCE_ADDR=[^:]*):\d+

试试这个。$1:4000看看演示。

https://regex101.com/r/uF4oY4/55

var re = /(INSTANCE_ADDR=[^:]*):\d+/gi; 
var str = '"BASH_VERSINFO=([0]=\"3\" [1]=\"2\" [2]=\"51\" [3]=\"1\" [4]=\"release\" [5]=\"x86_64-suse-linux-gnu\")\r\nBASH_VERSION=\'3.2.51(1)-release\'\r\nINSTANCE_ADDR=10.97.27.7:3000\r\\r\n"';
var subst = '$1:4000'; 

var result = str.replace(re, subst);

内部

var re = /(CF_INSTANCE_PORTS='\[.*?internal):\d+/gi; 
var str = 'CF_INSTANCE_PORTS=\'[{external:50100,internal:50100}]';
var subst = '$1:12312'; 

var result = str.replace(re, subst);