繁体   English   中英

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

[英]regex select after and between brackets but exclude them from captured group

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

我很抱歉写了几乎重复的帖子,我只是没有太多时间自己解决。

提前致谢。

只需从字面上匹配括号并创建一个仅包含括号内内容的组:

这是解决它的一种方法:

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

你的表达可能比它需要的复杂得多。 这个简约的 RegEx 可能可以解决您的问题:

(.*)\((.*)\)

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

这是交互式深入解释和一些示例: https : //regex101.com/r/OgshEn/1

这个正则表达式 '/(\\w+)((\\d+)))/' 达到了预期的结果。 请参考以下 javascript 结果。

let matches = "string(100)".match(/(\w+)\((\d+)\)/);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM