我有一堆文件,一些例子如下:
/foo1/foo2/bar1.bar2.bar3.answer.jar
/foo1/bar1.bar2.answer.jar
/foo1/foo2/answer.jar
对于以上所有我想要一个匹配'回答'的正则表达式。换句话说,我希望获得文件的别名,该文件是最后一个点之后文件名的一部分(如果没有点,则是文件名本身),文件扩展名(.jar可以保证在这里剥离更容易。
我知道我可以用一个更简单的正则表达式来实现这一点,用点分割值然后得到倒数第二个,但在这种情况下我正在构建一个后端的东西,理想情况下需要一个正则表达式在给定文件类型的配置定义中定义,并吐出别名,这可能与其他文件类型不同。
是的,我过度工程了。 :)有什么想法吗?
答案 0 :(得分:1)
您可以使用以下正则表达式:(假设答案部分不包含.
或/
)
[/\.]([^/\.]+)\.jar
第一个捕获组是您想要的部分。
答案 1 :(得分:1)
以下正则表达式适合您:
[^/.]+(?=\.jar$)
如果使用Javascript或类似的风格/
是正则表达式分隔符,那么你需要像这样转义/
:
[^\/.]+(?=\.jar$)