2015-06-24 5 views
4

У меня есть строка, которую мне нужно преобразовать в другой формат. Я создал регулярное выражение достаточно просто, чтобы соответствовать ему, хотя я не уверен, как заменить согласованные части.Как использовать регулярное выражение для замены строки самим?

До:@{1234,Test User}

После:@[Test User](1234)

Вот мой текущий шаблон, который соответствует до строки: /(@{.+})/

Как я могу использовать регулярное выражение для замены и преобразовать до того строка в строку после?

ответ

4

Вы можете заменить следующее:

@{(\d+),([a-zA-Z ]+)} 

со следующими:

@[\2](\1) #or based on your regex engine you may need to use $1 and $2 as your capture groups Backreferences 

Синтаксис:

string.replace(/@\{(\d+),([a-zA-Z ]+)\}/g, "@[$2]($1)"); 
+0

Мой движок регулярных выражений будет Javascript. Итак, первое регулярное выражение в основном соответствует двум группам, а затем вы ссылаетесь на эти группы в 'replace'? – Fizzix

+0

@Fizzix Да, замена - это правильная функция! – Kasramvd

+0

@ Kasra отметить, что js использует '$ 1' не' \ 1' –

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