假设,我需要匹配包含空格的括号。
这是一个片段:
String input = "( ) ( ) ( )";
Pattern pattern = Pattern.compile("\\(\\s\\)");
Scanner scanner = new Scanner(input);
scanner.useDelimiter("\\n");
Matcher matcher = pattern.matcher(input);
System.out.println(scanner.hasNext(pattern)); // false
System.out.println(matcher.find()); // true
System.out.println(matcher.start(0) + " " + matcher.end(0)); // 0 3
Matcher 完全符合我的需要,但 Scanner 没有。
这个问题没有被正确地问到。我的目的是用扫描仪按顺序抓取字符串中的所有 ( ) 标记,因为 matcher 似乎有不方便的 API 来完成此类任务。我应该彻底阅读文档。
我需要的方法是:
scanner.findInLine(pattern);