如何使用正则表达式删除最后一个括号

时间:2019-04-12 02:34:33

标签: regex

我想知道如何删除带有正则表达式的字符串的最后一个方括号及其内容:

AMES-13TH-19-G-309-约翰逊县[私人房间] [闭路电视]

第1组应该返回:

AMES-13TH-19-G-309-约翰逊县[私人房间]

,因此应删除[CCTV]。 非常感谢

2 个答案:

答案 0 :(得分:1)

此代码删除了在字符串中找到的最后一个[bracketed group]

var str = 'AMES-13TH-19-G-309-Johnson County [Private Room] [CCTV]' ;
var result = str.replace(/^(.*)\[[^\]]*\]/, '$1');
console.log(result);

由于(.*)的贪婪性,正则表达式基本上从字符串的末尾开始查找,并寻找模式\[[^\]]*\](开括号-任意数量的非闭括号-右括号)。如果找到匹配项,我们将扔掉括号中的部分并将其保留在前面。

答案 1 :(得分:0)

尝试一下:

var str = 'AMES-13TH-19-G-309-Johnson County [Private Room][CCTV]' ;

var patt = /\[\w*\](?![^\[]*\[)/g ;

var result = str.replace(patt,'') ;

console.log( result ) ;