【发布时间】:2011-07-22 16:21:09
【问题描述】:
只是解析类型的 url http://sitename.com/catid/300/, http://sitename.com/catid/341/ 等等等等
其中catid(300,341)后面的参数只是整数。当我在 .htaccess 中使用以下条件时,它工作正常
RewriteRule ^(abc|def|hij|klm)/([0-9]+)/$ /index3.php?catid=$1&postid=$2 [L]
但是当一个 php 正则表达式匹配函数时,比如 preg_match,它也会为字母数字返回 1
eg: echo preg_match('([0-9]+)','a123'); or echo preg_match('([0-9]+)',a123);
它们都返回 1 ()true。我不知道为什么它匹配字母数字。我希望它只匹配数字。
我做错了什么?
【问题讨论】:
-
你的 preg_match 基本上归结为“如果字符串中有一个或多个数字 ANYWHERE 则匹配”