正则表达式去掉文件名的后缀.....比如 /home.seam 取出来 home ...
[code="java"]
//有点局限,但是正好解决你的的问题
String source="/RoleList.xhtml";//RoleEdit.xhtml
Pattern patt=Pattern.compile("(?i)/([a-z]*?)(edit|list)?(?:\.[a-z])");
Matcher matt=patt.matcher(source);
String result="";
if(matt.find()){
result=matt.group(1);
}
System.out.println(result);
[/code]
/home.seam.split(".")[0].replace('/','');
用不着正则吧,..
不太明白。
我想
/\/color=red[/color].color=red[/color]/
[code="java"]
String source="/home/tt/dd.seam";
//能够处理windows和linux系统下不同路径书写格式
//String source="D:\\eee\\bbb.txt";这样定义也是可以处理的
//如果文件没有后缀也可以返回正确的结果
Pattern patt=Pattern.compile("(?i)(?:[a-z]:)?(?:[\\\\/]\\w+)*[\\\\/](\\w+)(?:\\.[a-z])?");
Matcher matt=patt.matcher(source);
String result="";
if(matt.find()){
//保存去掉后缀的文件名
result=matt.group(1);
}
System.out.println(result);
[/code]
打印的结果是:dd
按你这么说根本就不是去掉文件的后缀。题不达意。
取出来的都是这样子的.:
/SysLogList.xhtml
或
/SysLogEdit.xhtml
或
/SysLogList.seam
只有这三种情况?
要保留SysLog?
后面的就 Edit.xhtml / List.xhtml /Edit.seam /List.seam 四种情况吗?
/Role.xhtml -> Role.seam 这个没弄明白
ok 我可以搞定 等我晚上回去写下 现在要下班了
根据你的描述,我大致了解了你的需求。
我有两点要说下。
通过/RoleList.xhtml找到前面的Role,通常情况下必须有个解析的规范,否则是无法找出来的。
那么如果你这里遵循驼峰式命名的原则,那么就会很简单。
/\/([A-Z][a-z]+)*..*/
result的结果是:role
source还可以写成 Role.seam/Role.xhtml/SysLogEdit.xhtml;
都可以返回正确的结果。