Jquery 如果字符串已知,则获取包含在标识符中的整个字符串

Jquery 如果字符串已知,则获取包含在标识符中的整个字符串,jquery,regex,Jquery,Regex,我有一个字符串,我需要从字符串中删除一个子字符串。子字符串包含在标识符中(e.x[[1]]子字符串[\1]]) 字符串e.x:[[1]]abc[\1][[2]]pqr[\2]]xyz[[3]]rst[\3][[5]]ijk[\5]. 我希望从字符串中获得[[1]]abc[[\1]]: [[1]]abc[\1][[2]]pqr[\2]]xyz[[3]]rst[\3][[5]]ijk[\5]] 如果我知道子字符串abc 我尝试过这个解决方案:/\[\[(\d)\]\]pqr\[\\\\\\]\]/g

我有一个字符串,我需要从字符串中删除一个子字符串。子字符串包含在标识符中(e.x[[1]]子字符串[\1]])

字符串e.x:
[[1]]abc[\1][[2]]pqr[\2]]xyz[[3]]rst[\3][[5]]ijk[\5].

我希望从字符串中获得
[[1]]abc[[\1]]

[[1]]abc[\1][[2]]pqr[\2]]xyz[[3]]rst[\3][[5]]ijk[\5]]

如果我知道子字符串
abc

我尝试过这个解决方案:
/\[\[(\d)\]\]pqr\[\\\\\\]\]/gm
,但我需要提供动态文本


(e.x如果我想删除
abc
,我需要找到字符串中包含在标识符中的文本并将其删除)

字符串中的反斜杠需要转义,否则它们将被解释为错误<代码>\d匹配一个数字,需要转义正则表达式中的字符,如
[
,因为它们在不转义时用于特殊目的

var string = "[[1]] abc [[\\1]] [[2]] pqr [[\\2]] xyz [[3]] rst [[\\3]] [[5]] ijk [[\\5]]";
var substr = "abc";
regex = new RegExp("(\\[\\[\\d]] "+substr+" \\[\\[.\\d]])");
string.match(regex)[1]; // [[1]] abc [[\1]]

您期望,但您没有尝试?到目前为止您尝试了什么?“标识符”将是
[[number(0-9)]]一些文本[[\number(0-9)]]
Hi,新要求:如果一个数字已经被使用,它就不能被用于另一个标识符,例如:如果1已经被使用,它就不能被用于另一个标识符。这在正则表达式中是否可能?请需要您的帮助我不知道如何处理正则表达式,但这可能是可能的。可能是类似的,或者可能是另一个问题?您是我想尝试在匹配中循环并丢弃/标记包含您以前见过的数字的匹配(将您见过的数字添加到数组中)?我建议尝试一下,查看相关问题,如果不起作用,您可以创建一个新问题。