正则表达式和回车

时间:2013-09-24 06:40:11

标签: php regex

我正在解决Web表单中回车的奇怪问题,导致我的正则表达式语句出现混乱。我是正则表达式的新手,所以请原谅任何迟钝的问题。

当我的表单从文本区域发送数据输入时,以下函数用于将任何限定字符串转换为超链接:

function make_links_clickable($message)
    {
    return preg_replace('!(((f|ht)tp(s)?://)[-a-zA-Zа-яА-Я()0-9@:%_+.~#?&;//=]+)!i', '<a href="$1" target="_blank">$1</a>', $message);
    }
function make_links_clickable2($message)
    {
    return preg_replace('!(www\.)?[a-z0-9\-]+\.([a-z]{2,3}(\.?[a-z]{2,3})?)!i', '<a href="http://$0" target="_blank">$0</a>', $message);
    }
$message = make_links_clickable2($message);

问题似乎出现在第二个功能中。当我使用这些函数时,输出如下所示:

www.google.com
http://www.google.com
nwww.google.com
http://www.google.com

第三个输出在开头有一个'n'(它的超链接也是杂乱的),它似乎来自回车。不知道这是怎么回事。

1 个答案:

答案 0 :(得分:0)

我真的不喜欢它,但你有可能必须两次逃避反斜杠:

'!(www\\.)?[a-z0-9\-] etc.

这可能是问题所在。

问候