0

我需要创建将验证文件路径的正则表达式。它应该批准这样的字符串,例如:

c:\
c:\dir1\file.txt
c:\dir1\dir2\file.txt

等等。我试图创建它。结果:

(c|C):(\\\w{0,8})*(\.\w{1,3})?

gskinner 中一切正常,但是当我在 Java 中编译这个模式时,前面的行都没有经过测试。

Java代码:

p = Pattern.compile("(c|C):(\\\w{0,8})*");
m = p.matcher(arguments);
result = m.matches();
4

1 回答 1

0

我刚刚编辑了你的示例代码来工作:

String regex = "[cC]:(?:\\\\\\w{0,8})*(?:[.]\\w{1,3})?"

正则表达式\\匹配单个反斜杠,因为\它是正则表达式中的一个特殊字符,因此必须转义,但是一旦我们把它放在引号中,也就是把它变成 a String,我们需要转义每个反斜杠,产生"\\\\"。我们需要额外的两个\\w

于 2013-11-05T09:08:24.497 回答