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

C#正则表达式匹配括号内的任何内容,c#,regex,parentheses,C#,Regex,Parentheses,我想匹配括号内的任何内容,但结果也必须排除括号 示例: 初始化(P90W) 制动器(45倍) 结果: 990W 45倍 注意不带括号的结果 我一直在努力使这项工作,但没有用,我尝试了一些变化,但我知道这是一个简单的事情,我错过了,我不想去使用替换来实现它 var item = "Brake(45X)" Regex searchTerm = new Regex(@"\((.*)\)"); var value = (searchTerm.Match(item).Groups.Count > 0

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

示例:
初始化(P90W)
制动器(45倍)

结果:
990W
45倍

注意不带括号的结果

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

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


编辑:结果也将是组1而不是0,组0应包含整个正则表达式结果,而不是第一个括号中的值删除内部参数,然后重试:

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

如果在正则表达式中没有转义parantasis,则如果使用组匹配,它将只返回parantasis中的内容。因此,如果有,
newregex(@'(a)(b))”
,则匹配项1将是a,匹配项2将是b。匹配0是整个匹配。

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

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

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

我不知道C,但是一个
new Regex()
是否被假定为基本的、扩展的或PREG?您是否尝试过切换哪一组括号用反斜杠转义?也许
\(
表示“标记范围的开始”和
是一个文字参数?这看起来不错,发生了什么事?
值是
字符串。空的
?值返回(P90W)或带括号的(45X)。为什么需要向前看和向后看?
@“\([^\)]*)”
更简单,短4个字符:)这很好,kol的评论也很好,但我要说FailedDev的回答教会了我做一些我以前不知道的事情。我需要在花括号内找到所有字符串部分,所以使用了以下简单代码:string pattern=@“{(.*)}”;MatchCollection matches=Regex.matches(文本,模式);一条评论,如果你想要太空的妄想:(([^)]*)
var pattern = @".*public.*(.*\(.*\))";
Regex.Matches(input,pattern)