假设我有一个充满 Twitter 帖子的大型 RSS 提要,它们都是纯文本。很多帖子都包含 URL,我希望将这些 URL 转换为链接。
所以我有一个变量等于:
按行业、数量和日期可视化裁员。期待看到类似的招聘趋势。http://bit.ly/XBW4z
我希望它变成:
按行业、数量和日期可视化裁员。期待看到类似的招聘趋势。http://bit.ly/XBW4z
我怎么能那样做?对于正则表达式及其同类,我毫无用处,因此非常感谢您的帮助!
假设我有一个充满 Twitter 帖子的大型 RSS 提要,它们都是纯文本。很多帖子都包含 URL,我希望将这些 URL 转换为链接。
所以我有一个变量等于:
按行业、数量和日期可视化裁员。期待看到类似的招聘趋势。http://bit.ly/XBW4z
我希望它变成:
按行业、数量和日期可视化裁员。期待看到类似的招聘趋势。http://bit.ly/XBW4z
我怎么能那样做?对于正则表达式及其同类,我毫无用处,因此非常感谢您的帮助!
取决于你想匹配什么
一个不错的简单正则表达式是
http\://[a-zA-Z0-9./?&_\-]*
它将匹配任何以- A 到 Z、0 到 9、、、、、开头http://
并仅包含字符的url 。[]
-
.
/
?
&
如果要匹配其他协议(https
,ftp
等),可以使用
(http|ftp|你想要的任何其他协议)\://[a-zA-Z0-9./?&_\-]*
如果您想支持更多字符,只需将它们添加到[]
.
更新:忘记大写支持!德欧
即使我想要一个...检查搜索结果中的第一个链接。它很旧!
顺便说一句,看看 RHS .. 我们有类似的问题。 在纯文本 正则表达式中识别文本或 html 中的 url 和图像的 URL
只是为了添加一些信息......在 phpclass.org 上检查这个类,将解决你的问题......这个类将找到链接并转换它们......
好的,这里的这个问题(文本或 html 中的 url 和图像的正则表达式)有一个令人费解的标题,但在底部有一个有用的答案。至少,它适用于我和我的情况!
$text = preg_replace('@(http://([\w-.]+)+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?)@',
'<a href="$1">$1</a>', $text);
查看 preg_replace 函数。所以是这样的:
$regex_url = "((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)";
preg_replace($regex_url, '<a href="$1">$1</a>', $your_input_string);
URL 的正则表达式取自:http ://www.geekzilla.co.uk/view2D3B0109-C1B2-4B4E-BFFD-E8088CBC85FD.htm
有匹配有效 URL 的正则表达式。例如URLs 的完整正则表达式,它源自 URLs 的语法定义。
但最好明确声明它们而不是试图找到它们。因为在某些情况下无法区分,如果某些字符是 URL 的一部分或只是文本。