正则表达式从字符串中提取4位数字 - Android

时间:2016-11-29 05:02:40

标签: android regex

我需要从字符串中提取一个4位数字:

例如"您登录的otp是7832.此代码将于下午12:43:09到期"来自Android中的短信

我想提取7832或字符串中的任何4位数代码。我确保字符串中只有一个4位数代码。

请帮帮我。我试图使用像:

这样的模式
str.matches(".*\\\\d+.*");

但是我无法理解正则表达式。

2 个答案:

答案 0 :(得分:7)

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(0);  // 4 digit number
}

答案 1 :(得分:5)

执行:

\b\d{4}\b
  • \b匹配字边界

  • \d{4}匹配4位

Demo