Java正则中如何匹配反斜杠?如何匹配指定数字格式字符串?
问题2:匹配文件路径中的
????\??-??格式(?为数字) 先拆解需求:你要找的是4个数字 + 反斜杠 + 2个数字 + 连字符 + 2个数字的模式,对应示例路径里的2020\02-20。
结合问题1的转义逻辑,我们可以构建出对应的正则:
- 匹配数字用正则的
\d,Java字符串里写成\\d - 匹配反斜杠还是用
\\\\(Java字符串层面) - 连字符
-是正则字面量,直接写就行
最终的Java正则字符串是"\\d{4}\\\\\\d{2}-\\d{2}",拆解细节:
\\d{4}:匹配4个连续数字\\\\:匹配一个字面反斜杠\\d{2}:匹配2个连续数字-:匹配字面连字符\\d{2}:再匹配2个连续数字
代码示例如下:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class PathPatternMatcher { public static void main(String[] args) { String filePath = "D:\\it\\2020\\02-20\\123\\13.json"; // 构建匹配模式 Pattern pattern = Pattern.compile("\\d{4}\\\\\\d{2}-\\d{2}"); Matcher matcher = pattern.matcher(filePath); while (matcher.find()) { System.out.println("找到匹配的字符串:" + matcher.group()); } } }
运行这段代码会输出:找到匹配的字符串:2020\02-20,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Morteza Malvandi
相关产品推荐
相关产品推荐

