[英]Preg_match regex help
嗨,我需要一点帮助。
这是现有的preg_match代码:
preg_match("/(\/)([0-9]+)(\/?)$/", $_SERVER["REQUEST_URI"], $m);
可以很好地检测以下URI字符串中的post_id
:
http://www.example.com/health-and-fitness-tips/999/
我相信应该有足够的背景。
我将999
( post_id
更改为how_do how-do-I-lose-10kg-in-12-weeks', the
post_title`,并且需要更改pre_match正则表达式以检测新字符串。
我的第一个想法是将[az]-添加到正则表达式的末尾,制作以下正则表达式:
"/(\/)([0-9][a-z]/-+)(\/?)$/"
可能这么简单吗? 如果不是,那么上面有什么问题?
不太完全: ([0-9][az]/-+)
是“一个数字,后跟一个字母,然后至少一个破折号”。
您想要([-0-9a-z]+)
。
我只用\\w
:
preg_match('!/([-\w]+)/?$!', $_SERVER['REQUEST_URI'], $m);
从字符类或字符集 :
\\w
代表“文字字符”,通常是[A-Za-z0-9_]
。 请注意包含下划线和数字。
\\w
代表单词,可以是大小写字母A到Z和a到z,数字0到9或_。 等效于[A-Za-z0-9_]
。 您可以在此处通过在线测试仪进行测试 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.