假设我有一个这样的字符串:
String myExample = "Ticket Order 3748594 / 45 : blablabla"
我想提取子串" 3748594"从中,我该怎么做?
PS:我的字符串也可以是:"警告:票务订单3748594/45:blablabla","票务订单/编号/"没有预定位置。
答案 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,}";