我想要提取以下字符串:
/Monovolume/Honda+HR+V+1+6-11399031.htm
我要提取的是最后的8位数字,我尝试使用以下正则表达式:
Monovolume\/.+(\d{7,})
它说7或更多,因为有些情况只有7位数。但是,匹配仅为7位数,而不是上述字符串中的8位数。当我在括号中运行该部件时,我得到了正确的结果。导致此行为的原因是什么?如何解决?
P.S。我不能把“ - ”放在正则表达式中,因为它的外观很巧合。
答案 0 :(得分:2)
你非常接近。您的问题是,.+
将始终使用其中一个数字,因为正则表达式默认为“贪婪”。
我不确定你的要求,但你可以做一个懒惰的比赛:
Monovolume\/.+?(\d{7,})
/|\
|
它基本上会重复次数(当它达到7位或更多位数时)。
<强> See it live 强>
此处有更多信息:Regex Lazy Quantification