我注意到以下我无法解释的奇怪行为:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
var scanner = new Scanner("ab");
System.out.println(scanner.findInLine(".")); // output: a
System.out.println(scanner.findInLine(".")); // output: b
}
}
但
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
var scanner = new Scanner("ab");
System.out.println(scanner.findInLine(".")); // output: a
System.out.println(scanner.findInLine("^.")); // output: null
}
}
我不明白第二个片段与第一个片段有何不同。
根据文档,^
匹配一行的开头,但事实并非如此,因为:
a
在行匹配的开头,
a
在输入匹配的开头,以及
b
在扫描仪匹配的位置。
如果正则表达式不是相对于扫描仪的位置进行评估的,那么它相对于什么进行评估?
守候你守候我
Smart猫小萌
相关分类