Java Regex для ограничения количества слов

В этом уроке по регулярным выражениям Java мы научимся проверять, находится ли количество слов во входном тексте в пределах определенного минимального и максимального предела.

1. Регулярное выражение

    Следующее регулярное выражение очень похоже на предыдущее руководство по ограничению количества непробельных символов, за исключением того, что каждое повторение соответствует целому слову, а не одному непробельному символу. Оно соответствует от 2 до 10 слов, пропуская любые несловесные символы, включая знаки препинания и пробелы:

    ^\\W*(?:\\w+\\b\\W*){2,10}$

    Регулярное выражение соответствует строке, которая:

    • Начинается с любого количества несловарных символов(или вообще без несловарных символов).
    • Содержит от 2 до 10 слов(каждое слово состоит из одного или нескольких словесных символов).
    • За каждым словом следует разделитель слов(\\b).
    • После каждого слова может быть любое количество несловесных символов(включая пробелы, знаки препинания и т. д.).
    • Строка должна заканчиваться после 2-го по 10-е слово.

    Примеры совпадений:

    • «Привет, мир!»(2 слова)
    • «один-два-три 4 5″(5 слов)
    • «тест, ввод»(2 слова, с пробелами и запятыми)

    Примеры несовпадений:

    • «Один»(только 1 слово, что меньше 2)
    • «Это очень длинное предложение, в нем слишком много слов»(слишком много, чем 10 слов)

    2. Пример Java

    Следующая программа на Java демонстрирует использование классов Pattern и Matcher для компиляции и выполнения регулярного выражения.

    String regex = "^\\W*(?:\\w+\\b\\W*){2,10}$"; // Regex to limit to 3 wordsPattern pattern = Pattern.compile(regex);// Test inputString input = "Hello World Java";// Check if the input matches the regexMatcher matcher = pattern.matcher(input);if(matcher.matches()) {System.out.println("Valid input: " + input); // Prints this} else {System.out.println("Invalid input: " + input);}

    Я советую вам поэкспериментировать с приведенным выше простым регулярным выражением, чтобы попробовать больше вариаций.

    Прокрутить вверх