PHP正则表达式匹配可能包含不需要的HTML元素的字符串

时间:2011-08-20 20:23:21

标签: php regex

好的,我需要帮助这个: 我觉得我需要向后匹配的东西吗? 就像“从'。''向后匹配到第一个空间” 我需要用链接替换一些文本。

请参阅下面我要尝试完成的示例:

blabla hello www.test.no bla => blabla hello <a href="www.test.no">www.test.no</a> bla

blabla hello test.no bla => blabla hello <a href="test.no">test.no</a> bla

blabla hello http://www.test.no bla => blabla hello <a href="http://www.test.no">http://www.test.no</a> bla

任何?

3 个答案:

答案 0 :(得分:2)

我仍然不明白你需要什么 ,因为你的例子没有得到很好的解释,但是这里有:

preg_replace('/[^ ]+\.no/', '<a href="$0">$0</a>', $your_text);

示例代码:http://ideone.com/H4iFD

编辑:你去了:

preg_replace("~(http://)?([^ ]+\.no)~", '<a href="http://$2">$2</a>', $your_text);

示例代码:http://ideone.com/3OLfI

答案 1 :(得分:0)

你没有机会知道第二行是否真的是一个链接而不试图ping它(例如curl)。

但你可以用

做第三名
preg_replace('~(http://.*?) ~', '<a href="$1">$1</a>', $text);

答案 2 :(得分:0)

$linked = preg_replace('%(?://)?([a-z0-9_\-.]+?\.no)%i', "<a href='http://$1'>$1</a>", $input);