所述
String#matches()接受的正则表达式
模式。
“ layman’s”变体的regex变体
*2010*.txt为
.*2010.*.txt。
因此,以下应该工作:
public boolean accept(File dir, String name) { return name.matches(".*2010.*\.txt");}
双反斜杠只是用来表示实际的反斜杠,因为反斜杠本身是Java中的转义字符
String。
另外,您也可以使用其他
String方法在不使用正则表达式的情况下执行此 *** 作:
public boolean accept(File dir, String name) { return name.contains("2010") && name.endsWith(".txt");}
最好的选择是
ptrn代表一个 真正的 正则表达式模式,或者
.用
.and 替换每个字符串
*,
.*使之成为有效的正则表达式模式。
public boolean accept(File dir, String name) { return name.matches(ptrn.replace(".", "\.").replace("*", ".*"));}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)