请教一个正则问题,如以下字符串该如何提取呢

去除$里面的内容但要包括[]里面的内容

let str = "点击下方链接跳转123$br$$externalLink$[水之光剧场](/pages/index/index?appid=w1)$externalLink$"

期待的结果是:

let str = "点击下方链接跳转123水之光剧场"

谢谢大家


回答:

"点击下方链接跳转123$br$$externalLink$[水之光剧场](/pages/index/index?appid=w1)$externalLink$"

.replace(/\$[^$]*\$/g,'')

.replace(/\[([^\]]*)\]\([^)]*\)/g,'$1')

看上去是两个规则,一个是 $$ 连带中间内容都舍弃。一个是 []() 里面只要方括号中的。

请教一个正则问题,如以下字符串该如何提取呢


回答:

str.replace(/([[($])(.*?)([\])$])/g, function(match, $1, $2, $3) {

var pair = { $: "$", "[": "]", "(": ")" };

return pair[$1] !== $3 ? match : $1 === "[" ? $2 : "";

});

以上是 请教一个正则问题,如以下字符串该如何提取呢 的全部内容, 来源链接: utcz.com/p/937209.html

回到顶部