Ruby 正则表达式与预期的数字不匹配
我要从以下字符串中提取:Ruby 正则表达式与预期的数字不匹配,ruby,regex,Ruby,Regex,我要从以下字符串中提取: /Monovolume/Honda+HR+V+1+6-11399031.htm 我想提取的是我用下面的正则表达式尝试的结尾处的8位数字: Monovolume\/.+(\d{7,}) 它表示7或更多,因为有些情况下只有7位数字。然而,匹配仅为7位,而不是上面字符串中的8位。当我只运行括号中的零件时,我得到了正确的结果。导致这种行为的原因是什么?我如何修复它 另外,我不能把“-”放在正则表达式中,因为它的出现是巧合。你很接近。您的问题是您的+将始终使用其中一个数字,因
/Monovolume/Honda+HR+V+1+6-11399031.htm
我想提取的是我用下面的正则表达式尝试的结尾处的8位数字:
Monovolume\/.+(\d{7,})
它表示7或更多,因为有些情况下只有7位数字。然而,匹配仅为7位,而不是上面字符串中的8位。当我只运行括号中的零件时,我得到了正确的结果。导致这种行为的原因是什么?我如何修复它
另外,我不能把“-”放在正则表达式中,因为它的出现是巧合。你很接近。您的问题是您的
+
将始终使用其中一个数字,因为默认情况下regex是“贪婪的”
我不确定您的要求,但您可以做一个惰性匹配:
Monovolume\/.+?(\d{7,})
/|\
|
它基本上会重复尽可能少的次数(当它达到7位或更多位数时)
更多信息请点击此处: