正则表达式获取java文件的名称

时间:2014-07-03 12:44:44

标签: java regex

我有这样的代码

theResult.setFile(fileNode.getText().toUpperCase());

这样就可以在我的驱动器中输出一个文件的路径。

D:\workspace\try\myFile.java

正则表达式如何才能给我文件的名称? 所以,在输出中只显示

myFile.java

...谢谢

2 个答案:

答案 0 :(得分:1)

String text = "D:\\workspace\\try\\myFile.java";
String name = text.substring(text.lastIndexOf("\\")+1);

答案 1 :(得分:1)

使用以下正则表达式:

/^.*\\(.*?.java)$/

代码将成为:

theResult.setFile(fileNode.getText().toUpperCase()).replaceFirst("^.*\\\\(.*?.java)$", "$1");

正则表达式解析器非常敏感地基于修饰符读取行。在.*,这匹配整行,它看到\\(文字\),它回溯到最后一行反斜杠,所以之后的一切都是我们的文件名当且仅当它匹配“something.java”时。 .*?是一种非贪婪的匹配,意思是不是吃掉整个单词,而是逐字逐句地读到.java。它在捕获组( )中捕获,我们使用$1(捕获组1)检索它。

查看regex demo