2014-09-29 4 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

Смежные вопросы