我的正则表达式很差,我一直在为此苦苦挣扎。我有一些 URL 包含这样的模式:
/1234/
/5527191/
/15974/
等等。它总是一堆字母,然后是斜线、数字(不超过 10 个数字),然后是另一个斜线。
所以我在寻找一些正则表达式,它会搜索、忽略字母并在两个斜杠之间找到一组数字。
谢谢您的帮助!
您可以将preg_match_all
(或者preg_match
如果您只想要第一个匹配项)与以下正则表达式一起使用:
preg_match_all("#/\d{1,10}/#", $s, $matches);
解释
#
是正则表达式的分隔符。/
匹配文字斜线。\d
匹配任何数字。{1,10}
匹配前一个标记 1 到 10 次。在线查看它:ideone
如果您还想捕获不带斜杠的数字,您可以使用捕获组:
preg_match_all("#/(\d{1,10})/#", $s, $matches);