1

我有一堆文件,一些例子如下:

/foo1/foo2/bar1.bar2.bar3.answer.jar

/foo1/bar1.bar2.answer.jar

/foo1/foo2/answer.jar

对于以上所有内容,我想要一个匹配“答案”的正则表达式。换句话说,我正在寻找文件的别名,该文件是最后一个点之后的文件名部分(或文件名本身,如果没有点),文件扩展名(.jar 可以保证在这里为了使它更简单)被剥离。

我知道我可以用一个更简单的正则表达式来做到这一点,将值按点分割,然后得到倒数第二个,但在这种情况下,我正在构建一个后端的东西,理想情况下,它会采用一个在 a 中定义的正则表达式给定文件类型的配置定义,并吐出别名,对于其他文件类型可能不同。

是的,我过度设计了。:)

有任何想法吗?

4

2 回答 2

1

您可以使用以下正则表达式:(假设答案部分不包含.or /

[/\.]([^/\.]+)\.jar

第一个捕获组是您想要的部分。

于 2013-08-26T06:30:31.613 回答
1

以下正则表达式应该适合您:

[^/.]+(?=\.jar$)

如果使用 Javascript 或类似风格/的正则表达式分隔符,那么您需要/像这样转义:

[^\/.]+(?=\.jar$)
于 2013-08-26T07:11:28.830 回答