我试图修复我创建的正则表达式。
我有一个这样的网址:
http://www.demo.it/prodotti/822/Panasonic-TXP46G20E.html
我必须匹配产品ID(822)。
我写这个正则表达式
(?<=prodotti\/).*(?<=\/)
,结果是&#34; 822 /&#34;
我的匹配始终是两组之间的一组数字/ /
答案 0 :(得分:2)
你快到了!
只需使用:
(?<=prodotti\/).*?(?=\/)
而不是:
(?<=prodotti\/).*(?<=\/)
你很好;)
看到它正常工作here on regex101。
我实际上只是改变了两件事:
(?<=\/)
)...因此它断言我们可以匹配/
AFTER .*
消耗的最后一个字符。greediness
代替.*?
更改了匹配模式的.*
。如果没有更改,如果网址在/
之后有多个prodotti/
,则您不会停止到第一个。{http://www.demo.it/prodotti/822/Panasonic/TXP46G20E.html
,它将匹配822/Panasonic
。