大家好,我有这样的文件需要用正则表达式处理,可是不太会希望大家能够帮帮我
我的文件是不确定的(尤其是文件类型)
可能是enter.swf
可能是enter.swf#0101
可能是zf\zf\enter.swf
可能是zf\zf\enter.swf@0101(或?123什么的不是正规文件类型的)
我想把文件类型后面多余的字符去掉怎么办?
谢谢大家了
[b]问题补充:[/b]
不好意思,我是初学者,刚才看见回答的也没有带明白,不过我知道第一个回答的是对的,但是自己不知道怎么写,谁在帮帮我,给我个简单的小例子什么的
正则表达式处理文件的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- wanghaolovezlq 2009-06-17 12:55关注
参考下
[code="java"]
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.apache.commons.io.FilenameUtils;
public class RegTest
{/** * TODO 方法说明 * * @param args */ public static void main(String[] args) { //String str = "enter.swf#0101"; String str = "zf\\zf\\enter.swf@0101"; String ret = processStr(str); System.out.println(ret); } public static String processStr(String str) { String begin = FilenameUtils.getBaseName(str); //得到文件扩展名部分 String ret = FilenameUtils.getExtension(str); //\w 单词字符:[a-zA-Z_0-9] //\W 非单词字符:[^\w] Pattern p = Pattern.compile("\\W"); Matcher m = p.matcher(ret); int first = -1; if(m.find()) { first = m.start(); } if(first != -1) { ret = ret.substring(0, first); } return begin + "." + ret ; }
}
[/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作