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”;)