【发布时间】:2013-04-11 15:35:05
【问题描述】:
我用()和[]的很多变体尝试了下面的模式,但我无法实现我的目标。
$pattern = '/^http:\/\/www.mydomain.p.ht\/?[\p{L}\p{N}\-]{0,36}\/?[\p{L}\p{N}\-]{0,51}\/?[\p{L}\p{N}\-]{0,101}$/';
我的目标是:匹配我需要的 url 结构
http://www.mydomain.p.ht- 0 或 1 个
/斜线字符 - utf-8 可识别字母、数字和破折号字符。总长度最小 0,最大 36
- 0 或 1 个
/斜线字符 - utf-8 可识别字母、数字和破折号字符。总长度最小 0,最大 51
- 0 或 1 个
/斜线字符 - utf-8 可识别字母、数字和破折号字符。总长度最小
0,最大 101。最后不能有
/斜杠字符。
目前http://www.mydomain.p.ht/1234561-234561234561234-56123456123456şğ 匹配,但它不应该因为1234561-234561234561234-56123456123456şğ 部分有超过 36 个字符。
你能纠正我的模式吗?
【问题讨论】:
标签: php regex url preg-match match