Ruby 不使用';不接受数字之间的空格

Ruby 不使用';不接受数字之间的空格,ruby,regex,Ruby,Regex,我正在尝试解析如下行: 0: abc 0.5 1: a 16.1,3 2: b 0.9,2.3 3: c -19.645 7: 格式如下: Number:[space][up to 4 letters from the range ABCD][space][comma separated numbers that could be decimal and/or negative] 使用下面的ruby命令 if line=~ /^(\d*): [abcd]{0,4} ((\-?)(\d*)

我正在尝试解析如下行:

0: abc 0.5
1: a 16.1,3
2: b 0.9,2.3
3: c -19.645
7:  
格式如下:

Number:[space][up to 4 letters from the range ABCD][space][comma separated numbers that could be decimal and/or negative]
使用下面的ruby命令

if line=~ /^(\d*): [abcd]{0,4} ((\-?)(\d*).(\d*))*/) then
  do x
else
  do y
但是,它也匹配下面的字符串,我不希望它匹配,因为它们在数字之间有
:”
,而不是
”,“

如何修改我的正则表达式,使其仅适用于逗号分隔符


编辑:如果您想编辑正则表达式,请按如下所示使用Rubular链接:

如果我理解正确,此链接应该可以工作:

^\d+:\s[a-zA-Z]+\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)$
编辑:

如果7:[空格][空格]也有效,则使用此选项:

^\d+:\s[a-zA-Z]*\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)?$

如果我理解正确,这个应该可以:

^\d+:\s[a-zA-Z]+\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)$
编辑:

如果7:[空格][空格]也有效,则使用此选项:

^\d+:\s[a-zA-Z]*\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)?$

如果我理解正确,这个应该可以:

^\d+:\s[a-zA-Z]+\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)$
编辑:

如果7:[空格][空格]也有效,则使用此选项:

^\d+:\s[a-zA-Z]*\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)?$

如果我理解正确,这个应该可以:

^\d+:\s[a-zA-Z]+\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)$
编辑:

如果7:[空格][空格]也有效,则使用此选项:

^\d+:\s[a-zA-Z]*\s(-?(\d+\.)?\d+,)*(-?(\d+\.)?\d+)?$


你不是在
[字母]
之前和之后都有
[空格]
吗?行
0:abc…
3:c…
不应该也不匹配,因为它们没有任何逗号吗?不清楚您希望何时匹配,何时不匹配。是的,抱歉,fixed@sawa,不,这些应该是可以接受的,没有问题。我的正则表达式适用于这些。而且,您的正则表达式似乎基于您未提供的信息。
[字母]
是否总是由
abcd
组成,且长度最多为四个?您的正则表达式建议可以不存在
数字
[字母]
;这就是你想要的吗?你不是不仅在
[字母]
之前有一个
[空格]
,而且在
[字母]
之后也有一个
[空格]
吗?行
0:abc…
3:c…
不应该也不匹配,因为它们没有任何逗号吗?不清楚您希望何时匹配,何时不匹配。是的,抱歉,fixed@sawa,不,这些应该是可以接受的,没有问题。我的正则表达式适用于这些。而且,您的正则表达式似乎基于您未提供的信息。
[字母]
是否总是由
abcd
组成,且长度最多为四个?您的正则表达式建议可以不存在
数字
[字母]
;这就是你想要的吗?你不是不仅在
[字母]
之前有一个
[空格]
,而且在
[字母]
之后也有一个
[空格]
吗?行
0:abc…
3:c…
不应该也不匹配,因为它们没有任何逗号吗?不清楚您希望何时匹配,何时不匹配。是的,抱歉,fixed@sawa,不,这些应该是可以接受的,没有问题。我的正则表达式适用于这些。而且,您的正则表达式似乎基于您未提供的信息。
[字母]
是否总是由
abcd
组成,且长度最多为四个?您的正则表达式建议可以不存在
数字
[字母]
;这就是你想要的吗?你不是不仅在
[字母]
之前有一个
[空格]
,而且在
[字母]
之后也有一个
[空格]
吗?行
0:abc…
3:c…
不应该也不匹配,因为它们没有任何逗号吗?不清楚您希望何时匹配,何时不匹配。是的,抱歉,fixed@sawa,不,这些应该是可以接受的,没有问题。我的正则表达式适用于这些。而且,您的正则表达式似乎基于您未提供的信息。
[字母]
是否总是由
abcd
组成,且长度最多为四个?您的正则表达式建议可以不存在
数字
[字母]
;这就是您的意图吗?我修改了您的正则表达式,使其仅适用于字母abcd(最多4次),并且非常接近工作状态-它无法识别7:[空格][空格]行。请参阅以供参考。@JohnDough已更正!抱歉,我认为这不是一个有效的输入,但类似于“etc”;)我修改了您的正则表达式,使其仅适用于字母abcd(最多4次),并且非常接近工作状态-它无法识别7:[空格][空格]行。请参阅以供参考。@JohnDough已更正!抱歉,我认为这不是一个有效的输入,但类似于“etc”;)我修改了您的正则表达式,使其仅适用于字母abcd(最多4次),并且非常接近工作状态-它无法识别7:[空格][空格]行。请参阅以供参考。@JohnDough已更正!抱歉,我认为这不是一个有效的输入,但类似于“etc”;)我修改了您的正则表达式,使其仅适用于字母abcd(最多4次),并且非常接近工作状态-它无法识别7:[空格][空格]行。请参阅以供参考。@JohnDough已更正!抱歉,我认为这不是一个有效的输入,但类似于“etc”;)