在特殊情况下,用裸露的网址替换Markdown链接

时间:2018-10-25 15:59:01

标签: regex

我的数据集的属性带有Markdown格式的链接。

例如:

[stackoverflow](http://www.stackoverflow.com)
[GitHub](https://www.github.com)
[See](http://www.microsoft.com)
[More info](http://www.apple.com)
[Even more info](http://www.google.com)

对于最后三行,我想将属性的值更改为方括号之间的url。因此,结果数据集应如下所示:

[stackoverflow](http://www.stackoverflow.com)
  [GitHub](https://www.github.com)
  http://www.microsoft.com
  http://www.apple.com
  http://www.google.com

如何使用正则表达式实现这一目标?

我想到了这个

搜索:^\[See\]\((.*?)\)$
替换为:\1

前三行效果很好,但后两行当然没有变化。我似乎无法弄清楚如何使用一个正则表达式来完成我想做的事情。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

^\[(See|More info|Even more info)\]\((.*?)\)$

您需要在3个文本版本之间使用alternation,然后要替换的组现在是\2。括号是捕获组,但是管道|从值中选择。

答案 1 :(得分:1)

如果您的正则表达式引擎支持积极的眼神,则可以通过强制正则表达式有两行来尝试更通用的方法:

(?<=\n.+\n)\[(.*)\]\((.*?)\)$

并分别用$2 \2

替换