Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式在括号之后和括号之间选择,但将其从捕获组中排除_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式在括号之后和括号之间选择,但将其从捕获组中排除

Javascript 正则表达式在括号之后和括号之间选择,但将其从捕获组中排除,javascript,regex,Javascript,Regex,这是我的正则表达式:((.+?(?=[(])([(])+?[)])和字符串模板:“string(100)”。从中我捕获了3个组。第一个组是“string(100)”第二个组是“string”,第三个组是“(100)”。但我想从第三个组中排除括号,所以我只有“100”。我已经看过所有其他类似的帖子,但无法成功地将它们应用到我的问题中 我很抱歉写了几乎重复的文章,我只是没有太多的时间来解决它自己 提前感谢。只需按字面意思匹配括号,并创建一个仅包含括号内内容的组: 这是解决问题的一种方法: ((.+?

这是我的正则表达式:
((.+?(?=[(])([(])+?[)])
和字符串模板:
“string(100)”
。从中我捕获了3个组。第一个组是
“string(100)”
第二个组是
“string”
,第三个组是
“(100)”
。但我想从第三个组中排除括号,所以我只有
“100”
。我已经看过所有其他类似的帖子,但无法成功地将它们应用到我的问题中

我很抱歉写了几乎重复的文章,我只是没有太多的时间来解决它自己


提前感谢。

只需按字面意思匹配括号,并创建一个仅包含括号内内容的组:

这是解决问题的一种方法:

((.+?(?=[(]))\((.+?)\))

您的表达式可能比需要的复杂得多。此简约正则表达式可能会解决您的问题:

(.*)\((.*)\)
它匹配任何有一对括号的内容。整个匹配通常可以用作所有语言/框架中的捕获组。两个显式捕获组围绕括号前的所有内容和括号内的所有内容。(我所说的“所有内容”是指除换行符以外的所有字符。)

下面是一个交互式的深入解释和一些示例:

此正则表达式“/(\w+)(\d+)/”实现了所需的结果。请参考以下javascript结果

let matches = "string(100)".match(/(\w+)\((\d+)\)/);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);
使用
(.*?[(.*?[)])
。即
/(.*?\(.*?\)/
。甚至
/(.*?)\(.*?)/
,匹配项位于组0中。可能存在重复项