如何匹配以端口号结尾的链接

时间:2013-11-27 13:33:07

标签: php regex

如何匹配以端口号

结尾的以下链接结构

这样的链接
https://www.some_thing.com:13306
http://www.some_thing.com:13306
www.some_thing.com:13306
some_thing.com:13306

示例

$link1 = "http://www.some_thing.com:13306"; // will be true
$link2 = "http://www.some_thing.com/lol"; // will be false

所以任何人都可以帮我找到匹配此类链接的正则表达式,因为它基于:,然后跟着数字可能是匹配这种类型的关键。

〜谢谢

2 个答案:

答案 0 :(得分:2)

当然 - 它应该像/:\d+$/一样简单:

if (preg_match('/:\d+$/', $url)) {
    echo 'It has a port';
} else {
    echo 'It does not have a port';
}

<强>尸检:

  • : - 文字:字符
  • \d+ - 匹配一次或多次的数字
  • $ - 字符串必须在这里结束。最后一个匹配和字符串结尾之间没有任何内容

答案 1 :(得分:1)

这也有效;)

<?php
$link1 = "http://www.some_thing.com:13306";
if(is_numeric(array_pop(explode(':',$link1))))
{
echo "Valid URL";
}
else
{
echo "Illegal URL";
}