假设我有一些文件
\\foo\bar\12345.xml
\\foo\bar\23456.xml
\\foo\bar\12hellothere.xml
\\foo\bar\34youpeople.xml
前两个的特点是文件名中只有数字(不包括扩展名)。最后两个并不完全由数字组成。
目录名可以包含空格和数字。
有没有人有一个与 last 两个文件匹配的正则表达式,而不是前两个?
我在Java中实现这一点,如果这完全相关的话。
基本上我认为归结为.*\\\d+.xml
,但我不知道如何指定而不是。
答案 0 :(得分:0)
仅限文件名: [0-9] [0-9] [A-Z] +
文件名+ .xml: [0-9] [0-9] [A-Z] +。XML
Fie名称,但开头有两个以上的数字: [0-9] + [A-Z] +
有一个网站可以在这里测试你的正则表达式: regexp
答案 1 :(得分:0)
最好的正则表达式可能是:
(仅限文件名,为清晰起见)
\ W * \ d \ W *的.xml
注意:考虑到您考虑的任何数字都不是有效数字,例如10 10.xml
编辑:如果您希望它成为一封信:
\ W * [A-ZA-Z] \ W *的.xml
答案 2 :(得分:0)
试试这个
String[] s = {
"\\\\foo\\bar\\12345.xml",
"\\\\foo\\bar\\23456.xml",
"\\\\foo\\bar\\12hellothere.xml",
"\\\\foo\\bar\\34youpeople.xml",
"34youpeople.xml",
};
for (String e : s)
System.out.println(e + " -> " + e.matches("(.*\\\\)?\\d+[a-zA-Z]+\\.xml"));
结果:
\\foo\bar\12345.xml -> false
\\foo\bar\23456.xml -> false
\\foo\bar\12hellothere.xml -> true
\\foo\bar\34youpeople.xml -> true
34youpeople.xml -> true
答案 3 :(得分:0)
此
^((?!(.*\\\d+.xml)).)*$
是一种方式。
灵感来自Regular expression to match a line that doesn't contain a word?