注意,我只需要对符合这个模式的单词进行替换,@[some_text](some_text)。
以下是一些输入和预期输出的示例:
输入:thanks @[said](said_Id) for helping me with [PCM]
输出:thanks @[[said]](said_Id) for helping me with [PCM]
输入:thanks @[said](said_Id) @[john](jhon_doe_id)
输出:thanks @[[said]](said_Id) @[[jhon]](jhon_does_id)
输入:thanks @[said](said_Id) some text @[john](jhon_doe_id) some text @[alex](alex-id)
输出:thanks @[[said]](said_Id) @[[jhon]](jhon_does_id) some text @[[alex]](alex-id)
发布于 2021-07-22 17:26:40
input.replace(/@\[(.*?)\](\(.*?\))/g, '@[[$1]]$2')霸王龙爆发了:
@\[(.*?)\] <-- match the pattern @[anything]
(\(.*?\)) <--- match (anything)
/@\[(.*?)\](\(.*?\))/g <--- globally match all @[anything](anything)替换部分从搜索中获取括号中的主题,并按外观顺序替换它们($1,$2) --在本例中,它正在重建它在搜索@[[$1]]$2中找到的字符串
const fix = input => input.replace(/@\[(.*?)\](\(.*?\))/g, '@[[$1]]$2');
console.log(fix(`thanks @[said](said_Id) for helping me with [PCM]`))
console.log(fix(`thanks @[said](said_Id) some text @[john](jhon_doe_id) some text @[alex](alex-id)`))
https://stackoverflow.com/questions/68489087
复制相似问题