2013-09-01 64 views
1

java的正则表达式我想从网址的whatevername.css但我做错了什么,这些网址可能会发生变化,名称也因此它可能是的URL CSS文件名和扩展

www.asdasad.as /asdas/asdas/mystyles.css

asda.com/styles.css 等等等等

我试过这个(但它不工作“不能从方法,其结果返回值是无效” ):

String fileName = "www.whateverpage.es/style.css"; 
int idx = fileName.replaceAll("\\", "/").lastIndexOf("/"); 
return idx >= 0 ? fileName.substring(idx + 1) : fileName; 
+0

“它不工作”不是描述问题的好方法。你应该告诉我们你遇到了什么问题,如果你看到任何异常发布它的堆栈跟踪。请使用[[edit]]选项更新您的问题和其他信息。 – Pshemo

回答

0

replaceAll使用正则表达式作为参数,并表示\在正则表达式引擎的文字,你需要通过\\字面所以你需要把它写为"\\\\"字符串

int idx = fileName.replaceAll("\\\\", "/").lastIndexOf("/"); 

为了摆脱这种疯狂的尝试也许replace('\\','/')而不是replaceAll。这种方法不会使用正则表达式,但唯一的字符开关,让你的代码可以像

int idx = fileName.replace('\\', '/').lastIndexOf("/"); 

编辑您的更新后

不能从方法,其结果是无效的返回值

此错误是由于您的方法的返回类型为void而不是String。将您的方法声明从void yourMethodsName()更改为String yourMethodsName()

+0

问题是最后一行它说“不能从返回结果为无效的方法返回值”,但我可能会记住替换的东西 – user2666872

+0

哦,所以在这种情况下将方法声明更改为'String yourMethodsName()'而不是'void yourMethodsName()' – Pshemo

+0

哦真实...dziękuję! – user2666872