2016-02-26 82 views

回答

1

您需要转义反斜线,因为你在插值字符串:

eval "\"1 pages\".gsub(/\\D/, '')" 

或者因为你不需要插值只是不使用双引号:

eval '"1 pages".gsub(/\D/, "")' 
1

为什么eval忽略gsub

它没有。它可能看起来如此,因为\D在双引号内没有特殊含义,因此它被解释为普通"D""1 pages"内没有"D"

1

你想逃离D为好,因为这是正则表达式的一部分,而不是字符“d”独:

eval "\"1 pages\".gsub(/\\D/,'')"