我正在尝试从字符串中提取由方括号界定的最后一组。该字符串可能类似于以下变体之一:
String ' Extracted sub
-------------- ' -------------
Some (text) ' text
Some (text) (here) ' here
我需要字符串最后一个右括号之间的子字符串
我已经尝试过此正则表达式代码,但它总是从字符串的第一个括号中获取值
public static getValueInsideBracket(str: string): string {
let isStringHaveBrackets: string[];
if (!str) {
return '';
}
isStringHaveBrackets = str.match(/(.*)\(.*\)/);
if (isStringHaveBrackets) {
return str.match(/\(([^)]+)\)/)[1];
}
}
答案 0 :(得分:2)
尝试一下
A
说明: 在字符串的末尾查找一个开放字符(并匹配其中所有不是(或),然后有)的字符。
答案 1 :(得分:0)
尝试这样。
\(([^)]+)\)?(){1}$
您错过添加?(){1}$
。这将使您最后一次出现
function getValueInsideBracket(str){
if (!str) {
return '';
}
let isStringHaveBrackets = str.match(/(.*)\(.*\)/);
if (isStringHaveBrackets) {
return str.match(/\(([^)]+)\)?(){1}$/)[1];
}
}
console.log(getValueInsideBracket('hi (some) (text) (read)'))