java regex只获取文件名

时间:2013-10-17 11:10:12

标签: java regex

需要一些关于模式数学的帮助;我需要从字符串中提取文件名,如:

https://www.testsite.com/files/form/anonymous/api/library/ecb198be-1f05-4b0b-b0cd-7d878488a8c4/document/050cc508-1ea6-4b5f-a22b-b3edbdf6291f/media/x.jpg

只是x.jpg部分

&安培;也来自这个字符串:

<img alt="/JAGC/Images?action=AttachFile&amp;do=get&amp;target=Images/x.jpg">

&安培;如果它们是相同的图像,则用URL字符串替换目标。

我可以正确地说出来了

请帮忙吗?

3 个答案:

答案 0 :(得分:5)

它不需要任何正则表达式。

像这样使用:

String code = "...";
String filename = code.substring(code.lastIndexOf("/")+1, code.length());

编辑: 在第二种情况下,您不需要标记的结尾,因此请使用code.length() - 2

答案 1 :(得分:0)

试试这个:

str.replaceAll("^.*([a-z]+\\.[a-z]+).*$","$1");

()将文件名分组为$ 1.

答案 2 :(得分:0)

这很简单:

String filename1 = url.replaceAll(".*/([^/]+)", "$1");
String filename2 = xml.replaceAll(".*/([^\"]+)\".*", "$1");
if (filename1.equals(filename2))
    xml = xml.replaceAll("(.*/)([^\"]+)(\".*)", "$1" + url + "$3");