如何检索字符串的特定部分

Hip*_*ray 2 java regex string

我有一个目录列表作为字符串,我想要检索字符串的特定部分,唯一的是,因为这是一个目录,它可以改变长度

我想从字符串中检索文件名

"C:\projects\Compiler\Compiler\src\JUnit\ExampleTest.java"
"C:\projects\ExampleTest.java"
Run Code Online (Sandbox Code Playgroud)

所以在这两种情况下我只想检索ExampleTest(文件名也可以改变,所以我需要像第一个.和最后一个之前得到文本一样\).有没有办法使用正则表达式或类似的东西来做到这一点?

Bri*_*new 6

为什么不使用Apache Commons FileNameUtils而不是编写自己的正则表达式?来自doc:

该类定义了文件名中的六个组件(例如C:\ dev\project\file.txt):

the prefix - C:\
the path - dev\project\
the full path - C:\dev\project\
the name - file.txt
the base name - file
the extension - txt
Run Code Online (Sandbox Code Playgroud)

使用它你会好很多.它直接面向文件名,目录等,并且鉴于它是一种常用的,定义明确的组件,它已经过广泛测试,并且可以解决边缘情况等问题.