【发布时间】:2022-01-05 08:27:33
【问题描述】:
我有一个字符串:
[](first-(second))
我想删除[](...和最后一个...)之间的(和)
话虽如此,我目前正在使用(?<=\[\]\()(.*?)(?=\))
我认为(.*?) 需要替换为某种表达式,可以在两者之间找到( 和)。
类似于string.replace(/(?<=\[\]\()(.*?)(?=\))/g, '')的东西
字符串应该看起来像[](first-second)
【问题讨论】:
-
试试贪婪的,
(?<=\[\]\()(.*)(?=\))。如果它是一行中唯一的字符串,这将起作用。 -
它在两者之间找到整个文本。我需要找到具体的
(和) -
那么,由于 JavaScript 正则表达式不支持递归,所以需要明确括号是否只能配对,如果是,请指定要支持的嵌套深度,以及是否支持无限深度,不能用正则表达式,自己写解析函数。
-
关于它在之间找到整个文本:是的,但是您可以将匹配中的所有
(和)替换为string.replace。见jsfiddle.net/1hfeoxzk -
逐个字符检查直到找到起始边界(您也可以为此使用正则表达式),然后将堆栈用于
(和)并省略所有这些直到您找到一个配对的。
标签: javascript regex string replace