C# 我想用正则表达式做一个模式
我想做一个正则表达式模式,我想做一个模式,得到括号内的值,我试过这个,但它不起作用C# 我想用正则表达式做一个模式,c#,.net,regex,winforms,C#,.net,Regex,Winforms,我想做一个正则表达式模式,我想做一个模式,得到括号内的值,我试过这个,但它不起作用 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); } 您所做的是错误地理解“类”在正则表达式中的作用 [] - Denot
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]+\))
那些
+
告诉正则表达式捕获一个或多个。这将允许任何数字,而不仅仅是一个数字。您所做的是错误理解“类”在正则表达式中的作用
[] - 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]+\))
那些
+
告诉正则表达式捕获一个或多个。这将允许任何数字,而不仅仅是单个数字。这可能是您正在寻找的模式:
"\(([0-9]+.?[0-9])\)S*"
您可能忘记了括号、括号和“+”是特殊字符。请尝试或其他正则表达式测试人员修改您要查找的模式。这可能就是您要查找的模式:
"\(([0-9]+.?[0-9])\)S*"
您可能忘记了括号、括号和“+”是特殊字符。请尝试或其他regex测试人员修改您正在寻找的模式。以帮助您进一步查看其中一些站点。一个非常有用的网站是;他们有一个很大的正则表达式库。他们也有一个共同的目标。还有一个非常有用的正则表达式工具可供使用。帮助您进一步查看其中一些站点。一个非常有用的网站是;他们有一个很大的正则表达式库。他们也有一个共同的目标。还有一个非常有用的正则表达式工具。请描述您的预期和实际结果,而不是简单地说“它不起作用”。好的,我会确保下次这样做,谢谢您的建议:)。不要简单地说“它不起作用”,请描述您的预期和实际结果。好的,我会确保下次这样做,谢谢你的建议:)。很有效,非常感谢你的帮助,感谢你让我理解了一些我不太理解的事情。很有效,非常感谢你的帮助,感谢你让我理解了一些我不太理解的事情。