2016-11-29 41 views
1

我需要從字符串中提取4位數字:正則表達式從字符串中提取4位數字 - Android電子

如「您的登錄OTP是7832.這個代碼將在12:43到期:09PM「from Android in SMS

我想提取7832或任何4位數的字符串內的代碼。我確保字符串中只有一個4位數的代碼。

請幫幫我。我試圖使用如下模式:

str.matches(".*\\\\d+.*"); 

但我無法理解正則表達式。

回答

3
String data = "Your otp for the login is 7832. This code will expire at 12:43:09PM"; 

Pattern pattern = Pattern.compile("(\\d{4})"); 

// \d is for a digit 
// {} is the number of digits here 4. 

Matcher matcher = pattern.matcher(data); 
String val = ""; 
if (matcher.find()) {   
    val = matcher.group(1); // 4 digit number 
} 
+0

感謝您的回答。 matcher.group(1)的含義是什麼。 「1」在這裏代表什麼? –

+0

詳情請參考http://stackoverflow.com/questions/16517689/confused-about-matcher-group-in-java-regex – sasikumar

3

務必:

\b\d{4}\b 
  • \b匹配單詞邊界

  • \d{4}比賽4位

Demo

相關問題