帮助编写正则表达式

Ada*_*m S 0 c# regex

几乎一个月前我在这里问过一个非常类似的问题.

我正在努力理解正则表达式,但没有任何意义.SLak在这一问题解决的效果很好,但是当我尝试使用正则表达式助手在http://gskinner.com/RegExr/只的第一个逗号匹配-2.2,1.1-6.9,2.3-12.8,2.3时给出的正则表达式,|(?<!^|,)(?=-)

换句话说,我找不到一个甚至可以帮助我理解它的正则表达式工具.好吧,够抱怨了.现在我想重新写这个正则表达式,这样我可以做一个Regex.Split()将字符串分隔2.2 1.1-6.9,2.3-12.8 2.3-2.2,1.1,-6.9,2.3,-12.8,和2.3.

上述问题的不同之处在于现在可以存在前导和/或尾随空格,并且空白可以像逗号一样充当分隔符.

我尝试使用\s|,|(?<!^|,)(?=-)但这不起作用.我尝试使用它来分割293.46701,72.238185,但C#只是告诉我"输入字符串的格式不正确".请注意,SO无法正确显示前导和尾随空格.

编辑:这是执行的代码,以及执行代码后的变量和值. 在此输入图像描述

ras*_*sen 5

如果它不必是正则表达式,如果它不必慢:-)这应该为你做:

var components = "2.2 1.1-6.9,2.3-12.8 2.3".Replace("-", ",-").
Split(new[]{' ', ','},StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

然后组件将包含:[2.2 1.1 -6.9 2.3 -12.8 2.3]