English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Под表达式/метка " \b Соответствует границе слова вне квадратных скобок. Соответствует пробелу внутри скобок (0x08).
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main( String args[] ) { String regex = \\\\bbecause\\\b; Scanner sc = new Scanner(System.in); System.out.println("Enter a string:"); String input = sc.nextLine(); Pattern p = Pattern.compile(regex); Matcher m = p.matcher(input); int count = 0; while(m.find()) { count++; } System.out.println("Number of matches: " + count); } }
Результат вывода
Enter a string: Сentence doesn't end with because because, because is a conjunction Количество совпадений: 3
Следующий пример Java читает строку от пользователя и выводит количество границ слов.
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main( String args[] ) { System.out.println("Введите строку ввода: "); Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String regex = "\\b"; // Компилирование регулярного выражения Pattern pattern = Pattern.compile(regex); // Получение объекта поисковика Matcher matcher = pattern.matcher(input); int count = 0; while(matcher.find()) { count++; } System.out.println(count); } }
Результат вывода
Введите строку ввода: Привет, как ты? Добро пожаловать в w3codebox 14