正则表达式匹配逗号分隔的字符串

g.t*_*w.d 2 c# regex

我有以下字符串是合法的.

1-5,10-15
Run Code Online (Sandbox Code Playgroud)

使用以下正则表达式,我得到一个错误的匹配.

^[^-\s]*-?[^-\s]*$
Run Code Online (Sandbox Code Playgroud)

它适用于像这样的东西

  • 1-5,10
  • 1,5

这些都是合法的.但它不会处理逗号分隔范围.我错过了什么?

Dmi*_*sov 6

在哪里处理逗号?尝试在regexper中可视化你的正则表达式

现在尝试这个:

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

来自regexper.com的截图

更新:我的正则表达式不是解决方案,因为您可能对捕获有非常特殊的需求.但是,一旦您看到正则表达式的功能,那个漂亮的工具可能会帮助您完成任务.