我的代码是:
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
{
echo "<strong>Error</strong>: Invalid mysite.com link or could shorten link";
}
我得到了:
Warning: preg_match() [function.preg-match]:
Compilation failed: nothing to repeat at offset 12
我正在开发一个类似 bit.ly 的链接缩短版,但我只希望它缩短我特定网站的链接。
我需要一些帮助来解决这个错误。
答案 0 :(得分:5)
问题在于:
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
^
您已使用*
量词,但未指定该量词应用于何处。您可能希望.*
代替*
。
答案 1 :(得分:5)
星号或星号告诉引擎尝试将前一个标记匹配零次或多次。
if (!preg_match('^http(s)?://(*)?\.mysite.com(\*)^', $url))
↑
nothing to match
我相信你的正则表达式包含多个错误。我建议你一起去
if (!preg_match('/^https?:\/\/(?:[a-z\d-]+\.)*mysite.com(?:(?=\/)|$)/i', $url))