在线等--- 求提取局域网地址中的文件名的正则表达式?

打杂人
博客专家认证
2010-03-24 06:01:10
各位CSDN高手们:小弟在此谢过,
如下这几种可以代表所有的类型:
\\192.168.128.165\case\C94+ora9i\oracle9i.cat
\\192.168.128.165\case\C663\SampleReports.cat
\\192.168.128.165\case\bAuto\2009-12-08\C1646\TutorialReports.cat
\\192.168.128.165\case\Auto\2009-08-26\36647\CASE\TutorialReports.cat
求一正则表达式,
取出其中的C94+ora9i,C663,C1646,36647等
规律是要么是C开头,要么纯数字,纯数字位数在1至7位之间,均在\****\之间.
谢过!!
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
打杂人 2010-03-25
  • 打赏
  • 举报
回复
非常感谢lxcnn 帮助解决问题.是我问题有点描述不清,再次感谢!!!
-过客- 2010-03-24
  • 打赏
  • 举报
回复

String[] src = {"\\\\192.168.128.165\\case\\C94+ora9i\\oracle9i.cat", "\\\\192.168.128.165\\case\\C663\\SampleReports.cat", "\\\\192.168.128.165\\case\\bAuto\\2009-12-08\\C1646\\TutorialReports.cat", "\\\\192.168.128.165\\case\\Auto\\2009-08-26\\36647\\CASE\\TutorialReports.cat"};
String pattern = "(?<=\\\\)(?:C[^\\\\]+|\\d{1,7})(?=\\\\)";
for(int i=0;i<src.length;i++)
{
Matcher m = Pattern.compile(pattern).matcher(src[i]);
if(m.find())
{
System.out.println(m.group());
}
}


事实上楼主要考虑下,CASE为什么不取,它也是符合你现在的规则的,我上面只是用if,而不是while规避了这一问题
\\192.168.128.165\case\Auto\2009-08-26\36647\CASE\TutorialReports.cat

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧