2010-08-11 123 views

回答

2
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 
    public static void main(String[] args) { 
     Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*"); 
     Matcher m = p.matcher("completei4e10"); 

     if (m.find()) { 
      System.out.println(m.group(1)); 
     } 

    } 
} 
+0

这是我总是使用的方法。 – Molske 2010-08-11 14:20:06

0

有几种方法可以做到这一点,但你可以这样做:

String str = "completei4e10"; 

    str = str.replaceAll("completei(\\d+)e.*", "$1"); 

    System.out.println(str); // 4 

或者这个模式是[^i]*i([^e]*)e.*,根据可以是ie周围什么。

System.out.println(
     "here comes the i%@#$%@$#e there you go i000e" 
      .replaceAll("[^i]*i([^e]*)e.*", "$1") 
    ); 
    // %@#$%@$# 

[…]character class。类似于[aeiou]的东西匹配任何一个小写元音。 [^…]否定字符类。 [^aeiou]匹配之间的任何内容,但之间的小写元音。

(…)capturing group。在这种情况下,*+repetition说明符。

相关问题