首页 > 解决方案 > 如何匹配给定的正则表达式模式以从字符串中获取子字符串

问题描述

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

标签: javaregexstring

解决方案


你可以使用这种模式[A-Z]{4}-\\d{4}-\\d{6}-[A-Z]{2}\\d{2}

matcher.group(1)改为matcher.group(0).


推荐阅读