使用正则表达式将格式化字符串拆分为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]*)?/?)('))
任何帮助都将非常感激。谢谢。
该死。看来@Jerry和@MikeH比我先做到了。然而,我的答案是最好的,因为链接标签都是大写的;)
Find what: '[([^]]+)']'(([^)]+)')
替换为:<A HREF="$2">$1</A>
嗯,你可以尝试否定类,这样你就不必担心解析url本身?
'[([^]]+)']'(([^)]+)')
并替换为:
<a href="$2">$1</a>
regex101演示或者只使用开头部分来标识url?
'[([^]]+)']'(((?:https?|ftp)://[^)]+)')