我想制作一个正则表达式模式,我想创建一个模式来获取括号内的值,我尝试了这个但它不起作用。
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);
}
答案 0 :(得分:2)
你正在做的是误解“正常表达”中的“类”。
[] - 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]+\))
那些+
告诉正则表达式捕获一个或多个。这将允许任何数字,而不仅仅是一个数字。
答案 1 :(得分:1)
答案 2 :(得分:1)
为了帮助您进一步查看其中一些网站。一个非常有用的网站是regexlib;他们有一个庞大的正则表达式库。他们也有一个RegEx tester。此外,还有一个非常有用的RegEx工具here。