[英]How to remove string in double brackets?
我想知道如何删除双括号和包括括号中的字符串。 这是一个例子
var str="(C84) [Yayui (shirogisu)] 1 Day with the Commodore";
var n = str.replace(/\s*\(.*?\)\s*/g, '')
alert(n);
到目前为止,它只删除了一个括号,而没有删除一个在另一个括号内的括号。 最终输出应如下所示:
1 Day with the Commodore
如何删除任何类型的括号中的字符串,例如{,},[,],(,)实时版本: http : //jsfiddle.net/aPa25/
不确定双括号的含义,但是要删除括号和方括号中的所有内容,您可以使用
str.replace(/\s*\(.*?\)\s*/g, '').replace(/\s*\[.*\]\s*/g, '')
第一个replace
删除括号中的所有内容,第二个replace
删除方括号中的所有内容。
另外,如果您知道输入的形式总是这样,即括号部分后跟方括号部分,您可以这样做:
str.replace(/^\s*\(\w+\)\s*\[.*\]\s*/, '')
它的通用性较低,但如果该假设为真,则可能会更健壮。
编辑:鉴于以后您想要保留的文本中可能还有其他括号和方括号,请尝试:
str.replace(/\s*\([^)]*\)\s*/g, '').replace(/\s*\[[^\]]*\]\s*/g, '')
如果您说在第一个方括号内可以嵌套方括号,那么我会说,从数学上讲,您将需要比有限状态机(regex)更强大的理论机。
这应该用作替换正则表达式。 它针对每种括号类型进行单独查找。
\s*(?:\[[^[]+]|\([^)]+\)|{[^}]+})\s*
编辑:我认为“嵌套顺序”必须与正则表达式中的相同,因此如果我输入的内容有误,则可能需要对交替进行重新排序。 但是,它确实适用于您的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.