我想使用JavaScript和RegEx将[b: "text"]
的每次出现替换为<b>text</b>
。目前我知道如何使用[b: ""]
将<b></b>
替换为'/\[b: ""\]/g'
,但如果"
符号之间有文字,我无法弄明白该做什么(必须放在ThreadPool.QueueUserWorkItem(foo, null);
之间html标签)。
答案 0 :(得分:1)
您需要使用a capturing group ((.*)
)来匹配引号之间的文字,并在替换时使用该文字。
请注意,如果您必须处理字符串中的转义引号或任何复杂的引号,那么您将要使用真正的解析器而不是使正则表达式复杂化(我建议使用像{{3}这样的工具})。
GET
&#13;
var text = [
'[b: ""]',
'[b: "hello world"]',
'[b:"hello terse"]'
];
var rex = /\[b:\s?"(.*)"\]/;
var out = text.map(function(line) {
return line.replace(rex, '<b>$1</b>');
});
document.getElementById('r').textContent = JSON.stringify(out);
&#13;
答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个。这将捕获引号之间的空字符和所有字符。
text.match(/\[b: "(.+|)"]/g);
演示:http://www.regexr.com/3b6mi
.+
捕获一个或多个非空白字符
|
是一个合乎逻辑的OR
( )
创建一个新的捕获组