import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Т2 {
public static void main( String args[] ) {
String text = "Крещение Руси произошло в 988 году! Не так ли?";
String pattern = "(.*)(\\d+)(.*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(text);
if (m.find()) {
System.out.println("matches? " + m.matches());
int gC = m.groupCount();
System.out.println("groupCount: " + gC);
for (int i = 0; i <= gC; i++) {
System.out.println("group " + i + ": " + m.group(i));
}
} else {
System.out.println("Ne sovpadaet!");
}
}
}
matches? true
groupCount: 3
group 0: Крещение Руси произошло в 988 году! Не так ли?
group 1: Крещение Руси произошло в 98
group 2: 8
group 3: году! Не так ли?
Разобрал несколько примеров жадных, ленивых, супержадных. Вроде должен уже понять, но все никак.
https://regex101.com/r/qG2hNx/1
Match 0-46 Крещение Руси произошло в 988 году! Не так ли?
Group1 0-28 Крещение Руси произошло в 98
Group2 28-29 8
Group3 29-46 году! Не так ли?