Java 正则表达式从URL中剪切文件名

Java 正则表达式从URL中剪切文件名,java,regex,Java,Regex,我需要像这样剪切文件名表单链接: url('../webfonts/2EC49F_0_0.eot') 所以我需要剪切'2EC49F'路径,我创建了这个模式:([\/].?[\u]) 但它不起作用。我使用Java模式/匹配器。我想您可以使用这个 /.*?([^\/]*$)/ 或 *(?您可以使用以下模式进行匹配: ([^_\/]*)_ 并将其替换为空字符串。您可以使用基于查找的正则表达式进行匹配: (?<=/)[^/_]+(?=_) (?如注释所示,不要使用正则表达式。相反: St

我需要像这样剪切文件名表单链接:

 url('../webfonts/2EC49F_0_0.eot')
所以我需要剪切
'2EC49F'
路径,我创建了这个模式:
([\/].?[\u])

但它不起作用。我使用Java模式/匹配器。

我想您可以使用这个

/.*?([^\/]*$)/


*(?您可以使用以下模式进行匹配:

([^_\/]*)_

并将其替换为空字符串。

您可以使用基于查找的正则表达式进行匹配:

(?<=/)[^/_]+(?=_)

(?如注释所示,不要使用正则表达式。相反:

String url(String input) {
    int slashLoc = input.lastIndexOf('/');
    int underLoc = input.indexOf('_', slashLoc);
    if (slashLoc != -1 && underLoc && slashLoc+1 < underLoc) { // sanity check
        return input.substring(shashLoc, underLoc);
    } else return "";
}
字符串url(字符串输入){
int slashLoc=input.lastIndexOf('/');
int underLoc=input.indexOf(“”,slashLoc);
如果(slashLoc!=-1&&underLoc&&slashLoc+1
regex有不同的风格-取决于您使用的编程语言。此外,由于您要查找的是从最后一个
/
到最后一个点之间的代码-您根本不必使用regex!我只需在“/”和第一个“'@MeetJoeBlack”之间剪切“2EC49F”,我认为第二个是您想要的。不直观地说,它比c长但是是的,它应该更快。
String url(String input) {
    int slashLoc = input.lastIndexOf('/');
    int underLoc = input.indexOf('_', slashLoc);
    if (slashLoc != -1 && underLoc && slashLoc+1 < underLoc) { // sanity check
        return input.substring(shashLoc, underLoc);
    } else return "";
}