使用正则表达式将格式化字符串拆分为URL,如StackOverFlow

本文关键字:URL StackOverFlow 拆分 字符串 正则表达式 格式化 | 更新日期: 2023-09-27 17:53:54

我正在尝试编写一个解析器,将创建在发布的文本中发现的链接,格式如下:

[Site Description](http://www.stackoverflow.com)

将呈现为标准HTML链接,如下所示:

<a href="http://www.stackoverflow.com">Site Description</a>
到目前为止,我所拥有的是下面列出的表达式,并将在上面的例子中工作,但如果URL在"。com"之后有任何内容,则将不起作用。显然,没有一个单一的正则表达式可以找到每个URL,但我希望能够尽可能多地匹配。
('[)([A-Za-z0-9 -_]*)('])('()((http|https|ftp)'://[A-Za-z0-9'-'.]+'.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?)('))

任何帮助都将非常感激。谢谢。

使用正则表达式将格式化字符串拆分为URL,如StackOverFlow

该死。看来@Jerry和@MikeH比我先做到了。然而,我的答案是最好的,因为链接标签都是大写的;)

Find what: '[([^]]+)']'(([^)]+)')

替换为:<A HREF="$2">$1</A>

http://regex101.com/r/cY7lF0

嗯,你可以尝试否定类,这样你就不必担心解析url本身?

'[([^]]+)']'(([^)]+)')

并替换为:

<a href="$2">$1</a>

regex101演示

或者只使用开头部分来标识url?

'[([^]]+)']'(((?:https?|ftp)://[^)]+)')