我试图编写一个解析器来创建在发布文本中找到的链接,这些链接的格式如下:
[Site Description](http://www.stackoverflow.com)
将呈现为标准HTML链接,如下所示:
<a href="http://www.stackoverflow.com">Site Description</a>
到目前为止,我所拥有的是下面列出的表达式,并将在上面的示例中使用,但如果URL在&#34; .com&#34;之后有任何内容,则无效。显然,没有单一的正则表达式可以找到每个URL,但希望能够尽可能多地匹配。
(\[)([A-Za-z0-9 -_]*)(\])(\()((http|https|ftp)\://[A-Za-z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?)(\))
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
那么,您可以尝试使用否定类,这样您就不必担心解析url本身了吗?
\[([^]]+)\]\(([^)]+)\)
并替换为:
<a href="$2">$1</a>
或者也许只使用开头部分来识别网址?
\[([^]]+)\]\(((?:https?|ftp)://[^)]+)\)
替换是一样的。
答案 1 :(得分:1)
织补。看来@Jerry和@MikeH打败了我。但是,我的答案最好,因为链接标记都是大写的;)
找到:\[([^]]+)\]\(([^)]+)\)
替换为:<A HREF="$2">$1</A>