我想要做的是匹配^^
所包含的字符,并在保留字符串时替换^^
。换句话说,转过来:
^^This is a test^^ this is ^^another test^^
进入这个:
<sc>This is a test</sc> this is <sc>another test</sc>
我得到正则表达式以匹配它们:
\^{2}[^^]+\^{2}
但我被困在那里。我不确定如何处理其他.replace
参数:
.replace(/\^{2}[^^]+\^{2}/g, WHAT_TO_ADD_HERE?)
有什么想法吗?
答案 0 :(得分:5)
您可以使用替换为正则表达式和分组
var text = '^^This is a test^^ this is ^^another test^^'.replace(/\^\^(.*?)\^\^/g, '<sc>$1</sc>')
答案 1 :(得分:2)
以下是您可以使用的一段代码:
var re = /(\^{2})([^^]+)(\^{2})/g;
var str = '^^This is a test^^ this is ^^another test^^\n\n<sc>This is a test</sc> this is <sc>another test</sc>';
var subst = '<sc>$2</sc>';
var result = str.replace(re, subst);
这只是我添加捕获组的正则表达式模式的增强。为了提高性能并确保您将捕获^^
之间的所有符号,您只能使用一个捕获组和{em>非贪婪量化器的.
符号:
var re = /\^{2}(.+?)\^{2}/g;
查看the example。
答案 2 :(得分:1)
在这种情况下,您需要使用组索引来包装内容。
var content = "^^This is a test^^ this is ^^another test^^";
content.replace(/\^{2}(.*?)\^{2}/g, '<sc>$1</sc>');
(.*?)
将帮助您对内容进行分组,并在您的替换语句中使用$ 1,其中1是组的索引。