簡體   English   中英

如何匹配給定的正則表達式模式以從字符串中獲取子字符串

[英]How to match a given regex pattern to get a substring from a String

我有一個字符串 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"); 
        } 
    } 
}   

您可以使用此模式[AZ]{4}-\\\\d{4}-\\\\d{6}-[AZ]{2}\\\\d{2}

matcher.group(1)更改為matcher.group(0)

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));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM