2017-10-20 150 views
0

我有一個包含內部和外部大量Markdown文件的項目(從http開始)鏈接。其中一些內部鏈接沒有.md文件擴展名,因此在Jekyll外部渲染時不起作用。正則表達式只匹配沒有.md擴展名的內部Markdown鏈接

例子:

[link text 1](internal-link) 
[link text 2](internal-link-2.md) 
[link text 3](http://external-link...) 

我要尋找的正則表達式只匹配第一的這三種情況 - 內部鏈接不.md文件擴展名。

回答

1

精煉後,這可能是它:

\[[^]]+\]\((?!http:)(?!.+\.md).+\) 

https://regex101.com/r/0uW1cl/5

(除去再次捕獲組)

+0

類似於我也發揮各地,可惜只有偶然的作品。檢查這與更多的例子:http://regexr.com/3h0lq以某種方式排除所有與最後一個字符'.' - 但不是'http'開始... – janpio

+0

這裏顯示正在發生什麼與您建議的正則表達式(我只加了一些捕獲組):https://regex101.com/r/0uW1cl/3它排除了單個字符。 (但是,無論如何感謝你的認真回答!) – janpio

+0

你必須重新添加你的捕獲組 –