Java正则表达式对字符串的前2个字符进行子串

时间:2013-07-02 05:27:19

标签: java regex

我想使用Java Regex获取字符串的前两位数字。我不想使用子字符串。例如:如果我的字符串有“12345”,我想使用正则表达式将子串“12”。

4 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式

^\d{2}

^标志着字符串的开头

\d匹配一位数

{2}是一个量词,它可以匹配前面的模式2次


string digits="";
Matcher m=Pattern.compile("^\d{2}").matcher();
if(m.find())digits=m.group();

答案 1 :(得分:2)

最好在这里使用substring()

System.out.println("12345".substring(0,2)); // 12

如果需要验证复杂输入,正则表达式通常是有意义的。否则所有额外的模式编译都是不必要的开销。如果您确实想确认您的字符串实际上是一个数字并返回前两位数字,您仍然可以使用基本API。

String input = "12345";
try {
  Integer.parseInt(input);
  System.out.println(input.substring(0,2)); // 12
catch (NumberFormatException e) {
  System.out.println("Invalid input: " + input);
}

答案 2 :(得分:0)

你也可以试试这个正则表达式:

(?:\D+?)(\d{2})

答案 3 :(得分:0)

正则表达式这样的前两位数? ^(\d{2})

或使用像.*?(\d).*?(\d).*这样的字符串,如果字符串不仅像c3hk45那样数字,那么你可以从$ 1和$ 2获得那2位数,那么你将获得34