获取括号信息的C#正则表达式

获取括号信息的C#正则表达式,c#,.net,regex,parentheses,C#,.net,Regex,Parentheses,我需要一个正则表达式,它将匹配括号中的文本。括号应该包括在内。这里有一些例子 字符串:“(AB123-16W)DJ2988W61” 应匹配:“(AB123-16W)” 字符串:“(6541238版本B、PS B1和PS B2)62MJ301-29版本NC” 应匹配:“(6541238版本B,PS B1和PS B2)” 应与括号中的项目匹配:D 您可能不必在您的语言中使用分隔符(正斜杠)!尝试使用,如果不起作用,尝试不使用 var test1 = "(AB123-16W) DJ2988W61";

我需要一个正则表达式,它将匹配括号中的文本。括号应该包括在内。这里有一些例子

字符串:“(AB123-16W)DJ2988W61” 应匹配:“(AB123-16W)”

字符串:“(6541238版本B、PS B1和PS B2)62MJ301-29版本NC” 应匹配:“(6541238版本B,PS B1和PS B2)”

应与括号中的项目匹配:D

您可能不必在您的语言中使用分隔符(正斜杠)!尝试使用,如果不起作用,尝试不使用

var test1 = "(AB123-16W) DJ2988W61";
var test2 = "(6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC";
var test3 = "(6541238 Rev. B, PS B1 & PS B2)(AB123-16W)";

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

var result1 = (r.Matches(test1)[0].Groups[1].Value == "(AB123-16W)");
var result2 = (r.Matches(test2)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)");
var result3 = (r.Matches(test3)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)");
var result4 = (r.Matches(test3)[1].Groups[1].Value == "(AB123-16W)");

Debugger.Break();
应与括号中的项目匹配:D

您可能不必在您的语言中使用分隔符(正斜杠)!尝试使用,如果不起作用,尝试不使用

var test1 = "(AB123-16W) DJ2988W61";
var test2 = "(6541238 Rev. B, PS B1 & PS B2) 62MJ301-29 Rev. NC";
var test3 = "(6541238 Rev. B, PS B1 & PS B2)(AB123-16W)";

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

var result1 = (r.Matches(test1)[0].Groups[1].Value == "(AB123-16W)");
var result2 = (r.Matches(test2)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)");
var result3 = (r.Matches(test3)[0].Groups[1].Value == "(6541238 Rev. B, PS B1 & PS B2)");
var result4 = (r.Matches(test3)[1].Groups[1].Value == "(AB123-16W)");

Debugger.Break();
所有结果变量的计算结果均为true


所有结果变量的计算结果都将为true。

您可能需要一个非贪婪的版本:((.*),因为带有“Testing(123)Testing(123)”的贪婪版本将匹配(123)Testing(123)”,不幸的是,它没有返回任何匹配项。@aquinas,您的正则表达式也工作了。谢谢大家的帮助。您可能需要一个非贪婪版本:((.*),因为带有“Testing(123)Testing(123)”的贪婪版本将匹配(123)Testing(123)”,不幸的是,该版本没有返回任何匹配项。@aquinas,您的正则表达式也工作了。谢谢大家的帮助。