这是我的正则表达式:((.+?(?=[(]))([(].+?[)]))
和字符串模板:"string(100)"
。从中我捕获了3组。第一个是"string(100)"
,第二个是"string"
,第三个是"(100)"
。但是我想从第三组中排除方括号,所以我只有"100"
。我看过所有其他类似的帖子,但无法成功地使它们适应我的问题。
我为撰写几乎重复的帖子表示歉意,只是我自己没有太多时间来解决它。
谢谢。
答案 0 :(得分:0)
只需在字面上匹配括号并创建一个仅包含括号内内容的组即可:
那是解决它的一种方法:
((.+?(?=[(]))\((.+?)\))
答案 1 :(得分:0)
您的表达可能比需要的表达更为复杂。这种简约的RegEx可能可以解决您的问题:
(.*)\((.*)\)
它匹配带有一对方括号的任何内容。整个比赛通常可以用作所有语言/框架中的捕获组。这两个显式捕获组围绕方括号之前的所有内容以及内部的所有内容。 (“一切”是指除换行符以外的所有字符。)
这是一个交互式的深入解释和一些示例:https://regex101.com/r/OgshEn/1
答案 2 :(得分:0)
此正则表达式'/(\ w +)((\ d +))/'获得所需的结果。请参考以下javascript结果。
let matches = "string(100)".match(/(\w+)\((\d+)\)/);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);