常见的正则表达式规则
* 在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。
* 在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
* java的\\代表其他语言的一个\
* \ 将下一个字符标记为特殊字符、文本、反向引用或八进制转义符。 \n 换行
* “$”和“
^”分别是java正则表达式的终止和起始符,因此如果要匹配这两个字符不应将其直接写入正则表达式,而应该使用“
* . 任何字符
* ^ 匹配字符串开始位置
,如果设置了 RegExp 对象的 Multiline 属性,
^ 还会与
"\n"或
"\r"之前的位置匹配。
* $ 匹配字符串结束位置
,如果设置了 RegExp 对象的 Multiline 属性,$ 还会与
"\n"或
"\r"之前的位置匹配。
* * 0次或多次匹配前面的字符或子表达式
* + 1次或多次匹配前面的字符或子表达式
* ? 0次或
1次匹配前面的字符或子表达式
* {n
} n是非负整数。正好 匹配n次
* {n
,} n是非负整数
,至少匹配n次
* {n
,m
} m和n是负整数
, n
< m 至少匹配n次
, 最多匹配m次
* x
|y 匹配 x 或 y。例如,
'z|food' 匹配
"z"或
"food"。
'(z|f)ood' 匹配
"zood"或
"food"。
* [xyz
] 字符集。匹配包含任一字符
* [^xyz
] 反向字符集
* [a
-z
] 字符范围
* [^a
-z
] 反向字符范围
* \b 匹配一个字边界,即字与空格间的位置。例如,
"er\b"匹配
"never"中的
"er",但不匹配
"verb"中的
"er"。
* \B 非字边界匹配。
"er\B"匹配
"verb"中的
"er",但不匹配
"never"中的
"er"。
* \d 数字字符匹配。等效于
[0-9]。
* \D 非数字字符匹配。等效于
[^0-9]。
* \f 换页符匹配。等效于 \x0c 和 \cL。
* \n 换行符匹配。等效于 \x0a 和 \cJ。
* \r 匹配一个回车符。等效于 \x0d 和 \cM
* \s 匹配任何空白字符,包括空格、制表符、换页符等。与
[ \f\n\r\t\v
] 等效
* \S 匹配任何非空白字符。与
[^ \f\n\r\t\v
] 等效
* \t 制表符匹配。与 \x09 和 \cI 等效。
* \v 垂直制表符匹配。与 \x0b 和 \cK 等效。
* \w 匹配任何字类字符,包括下划线。与
"[A-Za-z0-9_]"等效。
* \W 与任何非单词字符匹配。与
"[^A-Za-z0-9_]"等效
public class Regex {
public static void main(String
[] args
) {
}
private static void demo15() {
String regex
= "[abc]{5,15}";
System
.out
.println("abcba".matches(regex
));
System
.out
.println("abcbaabcabbabab".matches(regex
));
System
.out
.println("abcb".matches(regex
));
System
.out
.println("abcbaabaabcbaaba".matches(regex
));
System
.out
.println("abcabceab".matches(regex
));
}
private static void demo14() {
String regex
= "[abc]{5,}";
System
.out
.println("abcba".matches(regex
));
System
.out
.println("abcbaabcabbabab".matches(regex
));
System
.out
.println("abcb".matches(regex
));
System
.out
.println("abcbaaba".matches(regex
));
System
.out
.println("ababaece".matches(regex
));
}
private static void demo13() {
String regex
= "[abc]{5}";
System
.out
.println("abcba".matches(regex
));
System
.out
.println("abcbaabcabbabab".matches(regex
));
System
.out
.println("abcb".matches(regex
));
System
.out
.println("abcbe".matches(regex
));
System
.out
.println("abcbaaba".matches(regex
));
}
private static void demo12() {
String regex
= "[abc]+";
System
.out
.println("".matches(regex
));
System
.out
.println("a".matches(regex
));
System
.out
.println("aaaaabbbbccccc".matches(regex
));
}
private static void demo11() {
String regex
= "[abc]*";
System
.out
.println("".matches(regex
));
System
.out
.println("abc".matches(regex
));
System
.out
.println("a".matches(regex
));
}
private static void demo10() {
String regex
= "[abc]?";
System
.out
.println("a".matches(regex
));
System
.out
.println("b".matches(regex
));
System
.out
.println("c".matches(regex
));
System
.out
.println("d".matches(regex
));
System
.out
.println("".matches(regex
));
}
private static void demo9() {
String regex
= "\\w";
System
.out
.println("a".matches(regex
));
System
.out
.println("z".matches(regex
));
System
.out
.println("_".matches(regex
));
System
.out
.println("*".matches(regex
));
}
private static void demo8() {
String regex
= "\\s";
System
.out
.println(" ".matches(regex
));
System
.out
.println(" ".matches(regex
));
System
.out
.println(" ".matches(regex
));
System
.out
.println(" ".matches(regex
));
}
private static void demo7() {
String regex
= "\\d";
System
.out
.println("0".matches(regex
));
System
.out
.println("a".matches(regex
));
System
.out
.println("9".matches(regex
));
System
.out
.println("23".matches(regex
));
System
.out
.println("A".matches(regex
));
}
private static void demo6() {
String regex
= "..";
System
.out
.println("a".matches(regex
));
System
.out
.println("ab".matches(regex
));
}
private static void demo5() {
String regex
= "[a-z&&[^bc]]";
System
.out
.println("a".matches(regex
));
System
.out
.println("b".matches(regex
));
System
.out
.println("2".matches(regex
));
System
.out
.println("de".matches(regex
));
}
private static void demo4() {
String regex
= "[a-z&&[def]]";
System
.out
.println("a".matches(regex
));
System
.out
.println("d".matches(regex
));
System
.out
.println("de".matches(regex
));
}
private static void demo3() {
String regex
= "[a-d[m-p]]";
System
.out
.println("a".matches(regex
));
System
.out
.println("e".matches(regex
));
System
.out
.println("m".matches(regex
));
System
.out
.println("n".matches(regex
));
System
.out
.println("ab".matches(regex
));
}
private static void demo2() {
String regex
= "[a-zA-Z]";
System
.out
.println("a".matches(regex
));
System
.out
.println("A".matches(regex
));
System
.out
.println("z".matches(regex
));
System
.out
.println("Z".matches(regex
));
System
.out
.println("2".matches(regex
));
System
.out
.println("*".matches(regex
));
System
.out
.println("ab".matches(regex
));
}
private static void demo1() {
String regex
= "[abc]";
System
.out
.println("a".matches(regex
));
System
.out
.println("b".matches(regex
));
System
.out
.println("c".matches(regex
));
System
.out
.println("d".matches(regex
));
System
.out
.println("2".matches(regex
));
System
.out
.println("*".matches(regex
));
System
.out
.println("ab".matches(regex
));
System
.out
.println("----------------------------");
String regex2
= "[^abc]";
System
.out
.println("a".matches(regex2
));
System
.out
.println("b".matches(regex2
));
System
.out
.println("c".matches(regex2
));
System
.out
.println("d".matches(regex2
));
System
.out
.println("2".matches(regex2
));
System
.out
.println("*".matches(regex2
));
System
.out
.println("10".matches(regex2
));
System
.out
.println("ab".matches(regex2
));
}
}