当我要求它匹配数字时,为什么扫描匹配""字符?

evi*_*ing 2 ruby regex

如果我跑:

"607.807-000".scan(/([[:digit:]]*)/)
Run Code Online (Sandbox Code Playgroud)

然后我回到数组:

["607", "", "807", "", "000", ""]
Run Code Online (Sandbox Code Playgroud)

扫描为什么匹配这些""字符?

ndn*_*kov 7

这是由于*重复次或多次的事实.因此,在没有数字的位置,它将匹配空字符串.+改为使用(重复一次或多次).