2010-08-11 120 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說明符。

相關問題