使用正则表达式从Java中过滤字符串中的一组单词

时间:2015-08-12 16:30:41

标签: java regex

我有这个字符串。

String longText  = "Associatepm: 4654-8199-9146";

String longText2 = "Associatepm: 465481999146";

我想检查longText是否包含4654-9199-9146465491999146 使用正则表达式并检索它。

String newLongText = 4654-8199-9146

System.out.println("The value of new long text" + newLongText); 
//prints 4654-8199-9146 or 465491999146

这是我尝试过的代码:

if(this.text.contains("associate 4444-4444-4444")){
  //print 4444-4444-4444
} else if(this.text.contains("associatepm 444444444444")){
  //print 444444444444
}

2 个答案:

答案 0 :(得分:0)

这应符合您的两种情况。

[0-9] {4} - [0-9] {4} - [0-9] {4}

https://regex101.com/r/gH2hN8/1

答案 1 :(得分:0)

这是我的问题的答案:

public static void main(String[] args){
        String text = "Associatepm: 4654-8199-9146";
        Pattern p = Pattern.compile("[0-9]{4}-?[0-9]{4}-?[0-9]{4}");
        Matcher m = p.matcher(text);
        boolean b = m.find();
        if(b == true){
            text = text.replaceAll("\\D+","");
        }
        System.out.println(text);

    }

特别感谢Ryan Reimer。