当我转义正则表达式中的两个正斜杠时,preg_match似乎失败了


preg_match seems to fail when i escape two forward slashes in the regular expression

我正在为一个网站构建路由器。用户页面的奇特URL是u/user_name/user_id ,其中u符号化用户, user_name user_name分别是存储在数据库中的用户的用户名(字母数字值(和用户ID(数值(。我匹配此类 uri 的正则表达式是 /u'/[A-Za-z0-9]'/'d/ .当我将这个表达式与匹配u/foo/9传递给preg_match时,我得到的返回值为 0。

但是当表达式被/u'/[A-Za-z0-9]/(这不是我想要的(并且与匹配u/foo一起传递时,preg_match返回一个正值 1。

我做错了什么,或者我的表情有问题。任何帮助将不胜感激

您错过了字符串中有多个字母数字字符和多个数字。使用此表达式:

/u'/[A-Za-z0-9]+'/'d+/