从字符串中提取特定子字符串

时间:2018-05-02 08:25:17

标签: java regex

假设我有一个这样的字符串:

String myExample = "Ticket Order 3748594 / 45 : blablabla"

我想提取子串" 3748594"从中,我该怎么做?

PS:我的字符串也可以是:"警告:票务订单3748594/45:blablabla","票务订单/编号/"没有预定位置。

2 个答案:

答案 0 :(得分:3)

这取决于你想要什么。

您可以使用简单模式\d+

所以:

Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(myExample);
if(m.matches()) // or m.find()
{
    m.find();
    System.out.println(m.group(0)); // output is 3748594
    // m.group(1) is 45
}

答案 1 :(得分:1)

您可以在以下情况下使用正则表达式:

    String line = "Ticket Order 3748594 / 45 : blablabla";
    String pattern = "[0-9]{5,}"; //this means at least 5 length of digits

    // Create a Pattern object
    Pattern r = Pattern.compile(pattern);

    // Now create matcher object.
    Matcher m = r.matcher(line);

    if (m.find( )) {
        System.out.println("Found value: " + m.group(0) );
    }else {
        System.out.println("NO MATCH");
    }

此外,如果您的模式总是像#34;票务订单[数字]"您可以使用正则表达式模式

    String pattern = "Ticket Order [0-9]{5,}";