C#正则表达式匹配括号内的任何内容

我想匹配括号内的任何内容,但结果也必须排除括号。

例子:
初始化(P90W)
制动器(45X)

结果:
990W
45X

注意没有圆括号的结果。

我一直在努力使这项工作,但无济于事我尝试了一些变化,但我知道这是一个简单的事情,我错过了,我不想使用替换来实现它。

var item = "Brake(45X)" Regex searchTerm = new Regex(@"\((.*)\)"); var value = (searchTerm.Match(item).Groups.Count > 0) ? searchTerm.Match(item).Groups[0].Value : string.Empty; 

有些人指责我一直使用零宽度断言:

 resultString = Regex.Match(subjectString, @"(?<=\().+?(?=\))").Value; 

但他们完全按照你的意愿行事。 不捕捉你不想捕捉的东西。

试试regex @"\((.*?)\)"

编辑:结果将是组1而不是0,组0应该包含整个正则表达式结果,而不是第一个带括号的值

删除内部paranthesis并再试一次:

 new Regex(@"(\([^\)]+\))"); 

当你没有在正则表达式中转义paranthesis时,如果你正在使用组匹配,它将只返回paranthesis中的内容。 所以,如果你有new Regex(@'(a)(b))' ,匹配1将是a,匹配2将是b。 比赛0是整场比赛。

 Regex searchTerm = new Regex(@"\(([^\)]*)\)"); 

试试这个:

 var pattern = @".*public.*(.*\(.*\))"; Regex.Matches(input,pattern)