如何使用正则表达式验证文件名?

您好我正在编写一个用于文件名验证的正则表达式。结合来自不同论坛的点点滴滴,但没有正确的测试结果。下面是我想要实现的例子的格式

格式:ABC<1|2>_DEF<6-7 位>_GHI<1|2|3>.xml 示例:ABC2_DEF1234567_GHI3.xml

这是用 Java 定义的正则表达式。

private static final String PATTERN = "ABC[1|2|3]+_DEF\\d[0-9]{6,7}+_GHI[1|2|3].xml$";



精慕HU
浏览 271回答 2
2回答

慕无忌1623718

我的猜测是您可能想要设计一个类似于以下的表达式:^ABC[12]_DEF[0-9]{6,7}_GHI[1-3]\.xml$测试import java.util.regex.Matcher;import java.util.regex.Pattern;final String regex = "^ABC[12]_DEF[0-9]{6,7}_GHI[1-3]\\.xml$";final String string = "ABC2_DEF1234567_GHI3.xml\n"     + "ABC<1|2>_DEF<6-7digits>_GHI<1|2|3>.xml";final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);final Matcher matcher = pattern.matcher(string);while (matcher.find()) {    System.out.println("Full match: " + matcher.group(0));    for (int i = 1; i <= matcher.groupCount(); i++) {        System.out.println("Group " + i + ": " + matcher.group(i));    }}正则表达式电路jex.im可视化正则表达式:

白衣染霜花

以下应该足够了:"(?i)abc[12]_def\d{6,7}_ghi[123]\.xml请注意使用?iflag 进行不区分大小写的匹配。您也可以使用Pattern.CASE_INSENSITIVE常量。此正则表达式匹配abc后跟 a1或 a 2,然后是_def,然后是 6-7 位数字,然后是_ghi,然后是1、2或3,扩展名为.xml。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java