この正規表現は、任意の文字列内で 1 桁、2 桁、または 3 桁の数字 (102 歳の場合) を見つける必要があります。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestClass {
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d\\d?\\d?");
Matcher m = p.matcher("some string with a number like this 536 in it");
while(m.find()){
System.out.println(m.group()); //This will print the age in your string
System.out.println(m.start()); //This will print the position in the string where it starts
}
}
}
または、文字列全体をテストするには、次のようにします。
Pattern p = Pattern.compile("I, am awesome. And I'm \\d{1,3} years old"); //I've stolen Michael's \\d{1,3} bit here, 'cos it rocks.
Matcher m = p.matcher("I, am awesome. And I'm 65 years old");
while(m.find()){
System.out.println(m.group());
System.out.println(m.start());
}