在Markdown中,有两种方法可以放置一个链接:一种是直接输入原始链接,例如:
我正在尝试编写一个正则表达式以匹配这两种方式,并且如果是第二种情况,还要捕获显示的字符串。
到目前为止,我有以下内容:
http://example.com
;另一种是使用()[]
语法:(Stack Overflow)[http://example.com ]
。我正在尝试编写一个正则表达式以匹配这两种方式,并且如果是第二种情况,还要捕获显示的字符串。
到目前为止,我有以下内容:
(?P<href>http://(?:www\.)?\S+.com)|(?<=\((.*)\)\[)((?P=href))(?=\])
但是这似乎与我在Debuggex中测试的两个测试用例都不匹配:
http://example.com
(Example)[http://example.com]
我真的不确定为什么至少第一个没有匹配成功,这是因为我使用了命名组吗?如果可能,我想继续使用它,因为这是一个简化的表达式来匹配链接,在实际示例中,我不想在同一模式的两个不同位置重复它。
我做错了什么?还是根本不可行?
编辑: 我正在使用Python进行此操作,因此将使用它们的正则表达式引擎。
[文本](链接)
,因此[]
在()
之前。 - Hamish Downer[link]
,然后在其他地方使用[link]: http://...
。 - Jorge Orpinel Pérez