Регулярное выражение Java не работает для этого особого случая использованияJAVA

Программисты JAVA общаются здесь
Anonymous
Регулярное выражение Java не работает для этого особого случая использования

Сообщение Anonymous »

Вот мой код:

Код: Выделить всё

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String args[]) {
String pageText = "Other Strings 9.5.1 My Other Strings";
String pageText2 = "Other Strings 9.3.1.1.1 My Other Strings";
Pattern anyServicePattern = Pattern.compile("(\\d+\\.){2}[0-9]\\s+[a-zA-Z]+");
Matcher anyServiceMatcher = anyServicePattern.matcher(pageText);
if (anyServiceMatcher.find()) {
System.out.println("Found");
} else {
System.out.println("Not Found");
}

Matcher anyServiceMatcher2 = anyServicePattern.matcher(pageText2);
if (anyServiceMatcher2.find()) {
System.out.println("Found");
} else {
System.out.println("Not Found");
}
}
}
Он печатает:

Найдено

Найдено
Я хочу, чтобы он напечатался

Найдено

Не найдено
т.е. Я хочу, чтобы регулярное выражение соответствовало шаблону Я перепробовал множество комбинаций, но, к моему большому удивлению, не смог их взломать. Какое выражение правильное?
Вот ссылка на jdoodle: https://www.jdoodle.com/ia/14IW

Подробнее здесь: https://stackoverflow.com/questions/787 ... l-use-case

Вернуться в «JAVA»