根据java.util.regex.Pattern文档,
^
表示否定,也表示行的开头。如何确定在任何程序中^
被用于什么?这是Thinking in Java的一个程序(与上面的问题无关)。import java.util.regex.*;
public class ReFlags {
public static void main(String[] args) {
Pattern p = Pattern.compile("[^java]", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
Matcher m = p.matcher(
"java has regex\nJava has regex\n" +
"JAVA has pretty good regular expressions\n" +
"Regular expressions are in Java");
while(m.find())
System.out.print(m.group());
}
}
输出结果
hs regex
hs regex
hs pretty good regulr expressions
Regulr expressions re in
模式 ^[java]
的输出结果是 jJJ
。
模式 (^java)
、^(java)
和 ^java
的输出结果均为 javaJavaJAVA
。
我理解了[^java]
的含义,但其他四个模式的含义是什么呢?
如果想要在输出中排除单词“java”(不区分大小写),应该怎么做呢?
[^java]
是负字符类,意味着匹配除了该类中列出的j,a,v
以外的任何内容。 - anubhava