Ruby 正则表达式仅匹配逗号分隔字符串中的单个数字

Ruby regex to match only single digits in a comma-delimited string

我输入的字符串如下:

"1,7"
"1,2,3, 8,10"
"1, 4,5,7"

我正在尝试编写一个正则表达式来匹配具有以下约束的上述字符串:

我试过以下方法:

 ([1-7]),?

但是它匹配连续的数字,如“55”,在后面的输入字符串中,在同一字符串中它也匹配“10”中的“1”,这是不正确的。

 "5,6,7, 55, 8, 10,3"

考虑到上面的输入字符串,所需的正则表达式应匹配 5、6、7 和 3。

注:我用的是Ruby2.2.1

谢谢。

您可以试试下面的正则表达式:

(?<=^|,|\b)[1-7](?=$|,|\b)

这意味着一个数字 [1-7] 必须紧跟在字符串或逗号的开头或单词边界 (?<=^|,|\b) 之后。并且必须紧接在字符串结尾或逗号或单词边界 (?=$|,|\b).

之前