正则表达式过滤掉seo url中的数字

时间:2011-07-28 19:24:12

标签: php regex

我有一些类似下面的网址

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

如果网址后面有数字斜杠,我需要返回正数 所以结果必须是

1345346
454536556
26609768

除了网址上的数字外,我怎样才能获得所有内容

2 个答案:

答案 0 :(得分:1)

如果这些是您网址中的唯一数字,则只需使用/\d+/,代表“任意数字一次或多次”。

如果你需要在字符串的最后部分专门分组数字,你可以使用更像这样的内容:/\/(\d+).*\.html$/,代表“一组数字,遵循字面正斜杠”/ ',后跟字符串末尾的任何字符和.html“,捕获组1将包含它。

根据评论请求:要获得正斜杠/前面的数字,并以连字符-结尾,只需使用:/(?<=\/)\d+(?=\-)/,可以将其细分为:

(?<=\/)  # 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.

答案 1 :(得分:0)

尝试将此作为正则表达式:/\/([0-9]+)/