正则问题。。

NewHandRookie 2009-08-31 05:12:44
import java.io.*;
import java.util.regex.*;
public class test
{
public static void main(String[] args)
{
String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\";
Matcher m=Pattern.compile(regex).matcher(str);
if(m.find())
System.out.println(m.group());

}


}

为什么要用这么复杂的String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\";
而不用String regex="[a-zA-Z]:(\\\\[a-z]+)\\\\";
...全文
106 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigbug9002 2009-08-31
  • 打赏
  • 举报
回复
/ | \ * ? < > : "
在windows下.这九种字符是不能用来命名文件名和目录名的.
bigbug9002 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 newhandrookie 的回复:]
那再问下,[^/|\\*? <>:\"]这里面这些东西就是建目录不允许的符号了,那么\\和\有什么区别啊。。我糊的那句号也不允许啊,怎么没有排掉。。。。还有逗号,那么多,排得完吗
[/Quote]
\\用来表示\
\"用来表示"

你可能看错了.
bigbug9002 2009-08-31
  • 打赏
  • 举报
回复
这不是我写的与此正则吗?这么眼熟。
老紫竹 2009-08-31
  • 打赏
  • 举报
回复
除了a-z 还有 A-Z还有0-9还有...

所以他写上了不允许的,不过我还是认为设置允许的更安全
NewHandRookie 2009-08-31
  • 打赏
  • 举报
回复
那再问下,[^/|\\*? <>:\"]这里面这些东西就是建目录不允许的符号了,那么\\和\有什么区别啊。。我糊的那句号也不允许啊,怎么没有排掉。。。。还有逗号,那么多,排得完吗
feishare 2009-08-31
  • 打赏
  • 举报
回复
那两个正则明显不用
吴冬冬 2009-08-31
  • 打赏
  • 举报
回复
你新建一个a.b的目录,看能不能新建就明白了

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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