c# - 如何修复我的正则表达式 ^\d+[-\d]?\d* 以匹配 123-45 而不是 123-?

标签 c# .net asp.net regex

我需要一个正则表达式来匹配以下格式的ID

123 或者 123-45

连字符前后可以有任意数量的数字。现在的问题是我的表达式匹配 123- 而我不需要它(连字符是可选的,但如果它存在,那么它后面必须至少有一个数字)。

我试过了 ^\d+[-\d+]?^\d+[-\d]?\d*,但都不起作用。

最佳答案

尝试这样的事情:

^\d+(?:-\d+)?$

你希望 - 至少有一个数字是可选的。 [-\d] 允许一个连字符 一个数字,后跟零数字。 ^\d+(?:-\d)?\d*$ 中的类似模式。

另见:

关于c# - 如何修复我的正则表达式 ^\d+[-\d]?\d* 以匹配 123-45 而不是 123-?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312381/

相关文章:

c# - 下游 block 中的 TPL 数据流和异常处理

c# - 如何读取加载到内存中的模块的 PE header ?

.net - 有人可以指点我一些 WPF 指南吗

c# - 强制网页打印到更高分辨率

c# - 我想通过 post 方法调用服务器,但它无法正常工作

c# - 从 Internet/Intranet 访问 SQL Server

C# 出现错误。无法从 System.Data.DataRow 隐式转换为 DataRow

javascript - asp.net 隐藏字段值未获取表单加载事件

c# - 在 Git 中存储 Web.config

c# - 如何在 C# 中访问不强制转换的多态方法