亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用正則表達式驗證文件名?

如何使用正則表達式驗證文件名?

精慕HU 2023-04-19 15:59:10
您好我正在編寫一個用于文件名驗證的正則表達式。結合來自不同論壇的點點滴滴,但沒有正確的測試結果。下面是我想要實現的例子的格式格式: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$";
查看完整描述

2 回答

?
慕無忌1623718

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可視化正則表達式:

http://img2.sycdn.imooc.com/643f9f7c0001ea1a06530126.jpg

查看完整回答
反對 回復 2023-04-19
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

以下應該足夠了:

"(?i)abc[12]_def\d{6,7}_ghi[123]\.xml

請注意使用?iflag 進行不區分大小寫的匹配。您也可以使用Pattern.CASE_INSENSITIVE常量。

此正則表達式匹配abc后跟 a1或 a?2,然后是_def,然后是 6-7 位數字,然后是_ghi,然后是1、23,擴展名為.xml。

查看完整回答
反對 回復 2023-04-19
  • 2 回答
  • 0 關注
  • 353 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號