繁体   English   中英

Preg_match正则表达式帮助

[英]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/

我相信应该有足够的背景。

我将999post_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM