我正在学习使用 Java 的模式和匹配器,这是我书中的示例代码片段。它的工作原理正如作者所描述的那样,但我不明白为什么 \\.
最终成为一个点而不是反斜杠(\\部分)和点(. 部分)。编译器不是从左到右读取的吗?
import java.util.regex.*;
public class SplitTest {
public static void main(String[] args) {
String input= "www.cs.cornell.edu";
Pattern p = Pattern.compile("\\.");
String pieces[] = p.split(input);
for (int i=0; i<pieces.length; i++){
System.out.println(pieces[i]);
}
}
}
最佳答案
它在解析字符串文字时被解释一次,并由正则表达式编译器解释一次。
"\\."
-> "\."
- 字符串文字
"\."
-> 文字 .
- 正则表达式编译器
关于java - 为什么\\在此正则表达式中不被解释为反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640378/