我有这样的代码
theResult.setFile(fileNode.getText().toUpperCase());
这样就可以在我的驱动器中输出一个文件的路径。
D:\workspace\try\myFile.java
正则表达式如何才能给我文件的名称? 所以,在输出中只显示
myFile.java
...谢谢
答案 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。