2 回答
TA贡献1744条经验 获得超4个赞
我的猜测是您可能想要设计一个类似于以下的表达式:
^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可视化正则表达式:
TA贡献1796条经验 获得超10个赞
以下应该足够了:
"(?i)abc[12]_def\d{6,7}_ghi[123]\.xml
请注意使用?i
flag 进行不区分大小写的匹配。您也可以使用Pattern.CASE_INSENSITIVE
常量。
此正则表达式匹配abc
后跟 a1
或 a 2
,然后是_def
,然后是 6-7 位数字,然后是_ghi
,然后是1
、2
或3
,扩展名为.xml
。
添加回答
举报