Php 正则表达式过滤出搜索引擎优化url中的数字

Php 正则表达式过滤出搜索引擎优化url中的数字,php,regex,Php,Regex,我有一些如下的URL http://www.bla-bla.com/hello-world/blah/1345346-asfasdf.html http://www.bla-bla.com/hello-world/454536556-asdf-rtrthr-dssdfg.html http://www.bla-bla.com/hello-world/bla/how/what/26609768-nmbbasdf.html 如果url后面有一个斜杠和数字,我需要返回正确的数字 所以结果一定是 13

我有一些如下的URL

http://www.bla-bla.com/hello-world/blah/1345346-asfasdf.html
http://www.bla-bla.com/hello-world/454536556-asdf-rtrthr-dssdfg.html
http://www.bla-bla.com/hello-world/bla/how/what/26609768-nmbbasdf.html
如果url后面有一个斜杠和数字,我需要返回正确的数字 所以结果一定是

1345346
454536556
26609768

除了URL中的数字以外,我如何从URL中获取所有内容呢?尝试将其用作正则表达式:
/\/([0-9]+)/
如果URL中只有这些数字,您可以简单地使用
/\d+//code>,它代表“任意数字一次或多次”

如果需要对字符串最后部分的数字进行专门分组,可以使用类似的方法:
/\/(\d+).*\.html$/
,它表示“一组数字,后跟一个正斜杠“/”,后跟字符串末尾的任何字符和.html”,捕获组1将包含它


根据comment的请求:要获取前面带有正斜杠
/
并以连字符
-
结尾的数字,只需使用以下命令:
/(?您尝试了什么?您可以使用它轻松测试正则表达式。它是:“返回正确的数字”还是“获取除数字以外的所有内容”?你的
重写规则做得怎么样?@MRAB你说的都错了,我想要一个正则表达式“把数字后跟一个斜杠(/)直到一个破折号(-)@George Cummins,我试过
/\/(\d+).*\.html$/
/
是正斜杠,``是反斜杠。你能把正则表达式重写为“把数字后跟一个斜杠(/)直到一个破折号(-)我的错,我永远无法把它们两个弄清楚。没问题!如果你想在将来尝试使用正则表达式,我建议使用,因为它对大多数(如果不是全部)正则表达式规则都有很好的参考价值。我认为正则表达式是“将数字后跟斜杠(/)直到破折号(-)会更好这不是你的问题所问的:如果url后面有一个斜杠和数字”。
(?<=\/)  # Look before the group for a forward slash, but don't add it to the capture group.
\d+      # Match one or more digits (0-9)
(?=\-)   # Look after the group for a hyphen, but don't add it to the capture group.