mscccc mscccc - 3 months ago 7
Java Question

Regex to find an integer within a string

I'd like to use regex with Java.

What I want to do is find the first integer in a string.

Example:

String = "the 14 dogs ate 12 bones"


Would return 14.

String = "djakld;asjl14ajdka;sdj"


Would also return 14.

This is what I have so far.

Pattern intsOnly = Pattern.compile("\\d*");
Matcher makeMatch = intsOnly.matcher("dadsad14 dssaf jfdkasl;fj");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);


What am I doing wrong?

Answer

You're asking for 0 or more digits. You need to ask for 1 or more:

"\\d+"