可以进一步简化此JavasScript正则表达式\。(md | njk | md \ .njk)$吗?

时间:2019-04-16 13:21:30

标签: javascript regex

我需要匹配以下字符串:

foo.md     -> capturing group should be: (.md)
foo.njk    -> capturing group should be: (.njk)
foo.md.njk -> capturing group should be: (.md.njk)

...在第一个点之后捕获全部(编辑:但扩展名应该是md或njk或md.njk)

这就是我所做的:首先\.(md|njk|md\.njk)$test),而且有效。

我已经尝试简化它,所以我又写了一个:\.(md|(md\.)?njk)$test),它虽然好一点,但仍然重复了“ md”一词。

不能进一步简化吗?

2 个答案:

答案 0 :(得分:2)

如果您想捕获第一个点之后的任何内容,我认为您可以使用this

/\.(.+)$/gi

enter image description here

编辑:正如分数在评论中提到的,将$放在最后并不是一个坏主意

答案 1 :(得分:1)

那呢?

/\.((md)?(\.)?(njk)?)$/