我想使用 Java Regex 获取字符串的前两位数字。我不想使用子字符串。例如:如果我的字符串有“12345”,我想使用正则表达式将“12”作为子字符串。
问问题
9087 次
4 回答
2
你可以使用这个正则表达式
^\d{2}
^
标记字符串的开始
\d
匹配单个数字
{2}
是一个量词,它将匹配前面的模式 2 次
string digits="";
Matcher m=Pattern.compile("^\d{2}").matcher();
if(m.find())digits=m.group();
于 2013-07-02T05:29:04.270 回答
2
substring()
在这里更好用
System.out.println("12345".substring(0,2)); // 12
如果您需要验证复杂的输入,Regex 通常是有意义的。否则,所有额外的模式编译内容都是不必要的开销。如果您确实想验证您的字符串实际上是一个数字并返回前两位数字,您仍然可以使用基本 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);
}
于 2013-07-02T05:30:57.990 回答
0
你也可以试试这个正则表达式:
(?:\D+?)(\d{2})
于 2013-07-02T05:43:33.210 回答
0
像这样的前两位数的正则表达式?^(\d{2})
或者使用类似的东西,.*?(\d).*?(\d).*
如果字符串不仅是像 c3hk45 这样的数字,那么你可以从 $1 和 $2 中得到这 2 个数字,那么你将得到 34
于 2013-07-02T07:18:58.967 回答