2014-09-29 67 views
0

我想用sed替换一个模式。我想进行全局搜索并替换 ,其中我将~~\d{3}~~替换为A\d{3}\B。换句话说,我想 替换~~345~~A345B正则表达式 - 替换使用反向引用

我的文件(src.txt)包含一个行:

hello ~~123~~ hello ~~12~~ hello ~~456~~ hello

我想这个更改为:

hello A123B hello ~~12~~ hello A456B hello

我想这在命令行上:

sed -i -c "s/~~(\d{3})~~/A\\1B/g" src.txt

然而,没有什么改变。我究竟做错了什么?

P.S. - 最终我想在Javascript中做这种替换 。

谢谢!

回答

0

在JS,这是很简单的:

var string = 'hello ~~123~~ hello ~~12~~ hello ~~456~~ hello', 
    regex =/~~(\d{3})~~/g; 

string = string.replace(regex, 'A$1B'); 
console.log(string); // hello A123B hello ~~12~~ hello A456B hello 
+0

谢谢,山姆。我很好奇你将如何使用sed在命令行上执行此操作。有什么想法吗? – CurtisD 2014-09-29 20:00:01