C# 正则表达式
首先,我正在用C语言编写一个计算器。 我将把一个字符串分成两个变量:Nb1和Nb2。我在网上查找示例,发现了一些东西:C# 正则表达式,c#,regex,C#,Regex,首先,我正在用C语言编写一个计算器。 我将把一个字符串分成两个变量:Nb1和Nb2。我在网上查找示例,发现了一些东西: var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)"); var match = numAlpha.Match("codename123"); var alpha = match.Groups["Alpha"].Value; // Alpha = codename var num
var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");
var match = numAlpha.Match("codename123");
var alpha = match.Groups["Alpha"].Value; // Alpha = codename
var num = match.Groups["Numeric"].Value; // Numeric = 123
var numAlpha=new Regex((?[a-zA-Z]*)(?[0-9]*)”;
var match=numAlpha.match(“代码名123”);
var alpha=match.Groups[“alpha”].Value;//Alpha=代码名
var num=match.Groups[“Numeric”].Value;//数值=123
我无法仅适应数字:“121165468746*1132”或“4586/6953”
Nb1=121165468746 | | 4586
Nb2=1132 | | 6953
你能帮我吗?我快发疯了:-)var numAlpha=new Regex(([0-9]+)([0-9]+)([0-9]+);
var match=numAlpha.match(“121165468746*1132”);
var nb1=match.Groups[“NumOne”].Value;//nb1=121165468746
var nb2=匹配.Groups[“NumTwo”].Value;//nb2=1132
var op=match.Groups[“Operator”].Value;//op=*
看起来您要做的是匹配由运算符分隔的一对整数。上面的正则表达式使用命名组(?…)
,以及两个简单的正则表达式来实现这一点<代码>[0-9]+将匹配一个或多个数字,[^0-9]
将匹配任何一个非数字字符,此处假定该字符为运算符
如果这不是你想要的,请留下评论,我会尽力帮助你。同时,一些阅读材料:
n1
和n2
^(?<n1>\d+)[^\d]+?(?<n2>\d+)$
^(?\d+[^\d]+?(?\d+)$
使用以下方法将数字与预定义的4种基本运算相乘、减法、加、除进行匹配。您可以根据需要向“op”表达式添加更多运算符
Regex rg = new Regex(@"(?<num1>[0-9]+)(?<op>[\*\-\+\\])(?<num2>[0-9]+)");
Regex rg=newregex(@“(?[0-9]+)(?[\*\-\+\])(?[0-9]+)”;
您是否尝试过阅读一些关于Regex的文档?您所拥有的与您的输入不匹配。对于纯数字序列,它应该返回什么?@Eve:它会;量词是*
,而不是+
@minitech我指的是他的其他“数字”,而不是他代码中的字符串。我假设他想用正则表达式提取这两个数字——如果我错了,我会删除注释。即使它仍然匹配,我认为这不是海报所期望的。代码只是一个例子。我会用数字做同样的事情
Regex rg = new Regex(@"(?<num1>[0-9]+)(?<op>[\*\-\+\\])(?<num2>[0-9]+)");