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

Ant*_*ony 3 .net c# regex asp.net

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

123 要么 123-45

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

我曾尝试 ^\d+[-\d+]?^\d+[-\d]?\d*,但既不工作.

Kob*_*obi 9

尝试类似的东西:

^\d+(?:-\d+)?$
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: