【发布时间】:2015-02-26 04:24:31
【问题描述】:
我正在尝试制作一个将文件模式转换为 java 正则表达式模式的实用程序函数,我需要它来对目录内的文件进行通配符匹配。我提出了 4 个需要考虑的案例。案例够不够?
regexPattern = filePattern;
// convert windows backslash to slash
regexPattern = regexPattern.replace("\\", "/");
// convert dot to \\.
regexPattern = regexPattern.replace("\\.", "\\\\.z");
// convert ? wildcard to .+
regexPattern = regexPattern.replace("?", ".+");
// convert * wildcard to .*
regexPattern = regexPattern.replace("*", ".*");
【问题讨论】:
-
您是在限制自己使用 Windows 命令 shell 通配符还是试图支持基于 Unix 的 shell 文件通配符模式?
-
使用
regexPattern = regexPattern.replace("?", ".");as?匹配单个字符,与正则表达式中的点相同。.+匹配一个或多个字符 -
@ewh 我也在尝试匹配基于 Unix 的 shell 文件模式。
标签: java regex filepattern