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
。
添加回答
舉報