首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式

正则表达式
EN

Stack Overflow用户
提问于 2012-12-27 07:27:39
回答 3查看 1.1K关注 0票数 0

为此,我在C#中编写了一个计算器。我将在两个variables= Nb1和Nb2中分隔一个字符串。我在网上找了一些例子,发现了一些东西:

代码语言:javascript
运行
复制
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

我无法仅适配数字:“121165468746*1132”或" 4586 / 6953“Nb1 =121165468746 || 4586 Nb2 =1132 || 6953

你能帮我吗?我快疯了:-)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-27 07:36:40

代码语言:javascript
运行
复制
var numAlpha = new Regex("(?<NumOne>[0-9]+)(?<Operator>[^0-9])(?<NumTwo>[0-9]+)");
var match = numAlpha.Match("121165468746*1132");
var nb1 = match.Groups["NumOne"].Value; // nb1 = 121165468746
var nb2 = match.Groups["NumTwo"].Value; // nb2 = 1132
var op = match.Groups["Operator"].Value; // op = *

看起来您要做的是匹配由运算符分隔的一对整数。上面的正则表达式使用命名组(?<GroupName> ... )和两个简单的正则表达式来实现。[0-9]+将匹配一个或多个数字,而[^0-9]将匹配任何一个非数字字符,这里假设它是运算符。

如果这不是你想要的,请留言,我会尽力帮助你。

  • Regular Expressions Page, with plenty of tutorials and references
  • Javascript Regular Expressions Tester with Syntax Highlighting
  • Java RegEx Tester. More powerful, fewer frills.
票数 0
EN

Stack Overflow用户

发布于 2012-12-27 07:37:51

这两个组分别称为n1n2

代码语言:javascript
运行
复制
^(?<n1>\d+)[^\d]+?(?<n2>\d+)$
票数 0
EN

Stack Overflow用户

发布于 2012-12-27 08:58:05

使用以下命令将数字与预定义的4个基本运算相匹配:乘、减、加、除。您可以根据需要在"op“表达式中添加更多运算符。

代码语言:javascript
运行
复制
Regex rg = new Regex(@"(?<num1>[0-9]+)(?<op>[\*\-\+\\])(?<num2>[0-9]+)");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14047553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档