我有一個字符串 ex-“Abc Xyz Def OSSV-1810-017466-AB01 Def Utv” 如何編寫一個正則表達式來對“OSSV-1810-017466-AB01”等格式進行數學運算并僅從任何給定的字符串中提取它?嘗試了什么:public class RegexTest { public static void main(String[] args) { String str = "Abc Xyz Def OSSV-1810-017466-AB01 Def Utv"; Pattern pattern = Pattern.compile("[a-zA-Z\\-\\0-9\\-\\0-9\\-\\^A-Za-z0-9]"); Matcher matcher = pattern.matcher(str); System.out.println(matcher.toString()); if(matcher.find()){ System.out.println("found" + matcher.group(1)); } else{ System.out.println("not found"); } } }
2 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
您可以使用這種模式[A-Z]{4}-\\d{4}-\\d{6}-[A-Z]{2}\\d{2}
。
也matcher.group(1)
改為matcher.group(0)
.

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
public static void main(String[] args) {
String input="Abc Xyz Def OSSV-1810-017466-AB01 Def Utv";
String regEx="([a-zA-Z ]*)((?:[A-Z]{4}-)(?:[0-9]{4}-)(?:[0-9]{6}-)(?:[A-Z0-9]{4}))([a-zA-Z ]*)";
Matcher matcher = Pattern.compile(regEx).matcher(input);
if(matcher.matches()) {
System.out.println(matcher.group(2));
}
}
添加回答
舉報
0/150
提交
取消