我想做一个正则表达式模式,我想做一个模式来获取括号内的值,我试过这个但它不起作用。
String input = "(3+4)+5*4";
Match m = Regex.Match(input, @"([(0-9\/\+\-\*0-9)])");
if (m.Success)
{
String value = m.Groups[1].ToString();
MessageBox.Show(value);
}
您所做的是误解了“类”在正则表达式中的作用。
[] - Denotes a set of characters to match. This is NOT a pattern.
你需要抓住的是你几乎正确的模式。
(\([0-9][\/\+\-\*][0-9]\))
Capture:
Open Parenthesis
Any character in [0-9]
Any Character in [\/\+\*\-]
Any Character in [0-9]
Close Parenthesis
不过,这只会允许一位数字。如果您有任何多位数字,即使是 10 ......这也行不通。现在,如果你把它改成这样:
(\([0-9]+[\/\+\-\*][0-9]+\))
那些+
告诉正则表达式捕获One 或 More。这将允许任何数字,而不仅仅是一个数字。