我有以下目录: 的 视频/普通/项目/ Project01 / video.project_01.StatusOK / video.project_01.StatusOK.csproj
正则表达式,我只用提取路径的最后一部分( video.project_01.StatusOK.csproj em> )如下:
(适用[\ W |。] )/项目/([\ W |。| \ S] )/([\ W |。| \ S] ) /([\ W |。| \ S] )([。] *)
问题是如果路由不同,那就是之前有一个目录:video.project_01.StatusOK.csproj,例如: Videos / common / Project / Project01 / video.project_01.StatusOK /test/video.project_01。 StatusOK.csproj ,我会提取 ' test' 。
让我们看看是否有人可以帮助我使用java的正则表达式,总是提取包含 ' .csproj' ,无论路线如何。
问候,非常感谢
答案 0 :(得分:1)
试试这个正则表达式:
(?<=\/)[^\/]+csproj
<强>解释强>
(?<=\/)
- 在/
[^\/]+
- 匹配任何非/
csproj
- 按字面意思匹配csproj
答案 1 :(得分:0)
如果你不知道,Java 7引入了NIO2,它带来了一个新的接口java.nio.file.Path
。您可以拆分目录的路径,然后在路径的每个部分使用正则表达式。
Oracle的 Java教程有一个关于Path Operations
的部分(还有一个关于正则表达式的部分)
答案 2 :(得分:0)
如果您想继续使用路径中的/Project/
,可以试试这个:
.*?/Project/.*?(?<=\/)([\w+. ]+\.csproj)$
那就匹配
(.*?)
/Project/
(.*?)
(?<=\/)
(
这将包含您的匹配 [\w. ]+
一次或多次的字符类\.csproj
)
$