/^https?\:\/\/www\.my\-domain\.com\/dir\/file[0-9]*\.htm$/
匹配所有示例字符串:
if (preg_match('/^https?\:\/\/www\.my\-domain\.com\/dir\/file[0-9]*\.htm$/',$url,$matches))
{
var_dump($matches);
}
由于您不清楚(或不清楚)正则表达式:这就是这个表达式的作用:
^https?
: 检查天气是否以 http 开头,并允许一个可选的s
\:\/\/www\.my\-domain\.com\/dir\/file
: 验证实际的基本 url,斜线、冒号、点和破折号需要转义,因为它们在正则表达式语法中的特殊含义(斜线是常见的分隔符,点 == 几乎任何字符,冒号后面?
可以解释为条件的一部分匹配,...)
file[0-9]*\.html$
: 匹配file
和否,或者字符串后面的任意数量的数字,所以这将匹配file
,file1
以及file0
or file00000123434
。然后.htm
匹配,并$
确保这是您尝试匹配的字符串的结尾。
就是这样,真的。一个非常严格的正则表达式。您也可以添加更多的 flex,方法是(例如)允许 html 和 htm 作为字符串的结尾,就像表达式允许 http 和 https: 一样\.html?$
。还有其他方法可以编写相同的内容:\.html{0,1}
: 匹配最后的 0 或 1 l。甚至:匹配“组”.[html]{3,4}
“html”中的 3 个或 4 个字符:htm、html 但也匹配 hhh、htth 等...
玩它,玩得开心。一旦你掌握了基础知识,正则表达式就不那么难了