我正在为网站构建路由器。用户页面的精美网址为 u/user_name/user_id
,其中 u
表示用户 user_name
&安培; user_name
是用户名(字母数字值)&存储在db中的用户的用户ID(数值)。我的正则表达式匹配这样一个uri是/u\/[A-Za-z0-9]\/\d/
。当我将此表达式与匹配u/foo/9
传递给preg_match
时,我得到的返回值为0.
但是当表达式为/u\/[A-Za-z0-9]/
(不我想要的)并且与匹配u/foo
一起传递时,preg_match
会返回正值1 。
我做错了什么或者我的表情有问题。任何帮助将不胜感激
答案 0 :(得分:2)
你错过了你的字符串中有多个字母数字字符和多个数字。使用以下表达式:
/u\/[A-Za-z0-9]+\/\d+/