常用正则标记:
1、字符匹配【数量:单个】
- 任意字符,表示由任意字符组成;
- “ \\ ” 匹配 “ \ ”
- “ \n ” 匹配换行
- “ \t ” 匹配制表符
public class RegexDemo {
public static void main(String[] args) {
String str = "a";
String regex = "a";
System.out.println(str.matches(regex));
}
}
2、字符集匹配【数量:单个】(给出一个集合,从集合中任意匹配一个字符)
- [abc] 表示可能匹配a、b、c中的任意一个字符
- [^abc] 表示所匹配的字符不是a、b、c中任意一个
- [a-zA-Z] 表示由任意字母组成,不区分大小写
- [0-9] 表示由任意数字组成
public class RegexDemo {
public static void main(String[] args) {
iMatch("a","[abc]");
iMatch("x","[^abc]");
iMatch("Y","[a-zA-Z]");
iMatch("9","[0-9]");
}
private static void iMatch(String str, String regex){
System.out.println(str.matches(regex));
}
}
3、简化的字符集匹配【数量:单个】
- “ . ” 表示任意字符
- “ \d ” 等价于 “ [0-9] ”
- “ \D ” 等价于 “ [^0-9] ”
- “ \s ” 匹配任意空格,可能是空格、换行、制表符
- “ \S ” 匹配任意非空格
- “ \w ” 匹配字母、数字、下划线,等价于 “ [a-zA-Z_0-9] ”
- “ \W ” 匹配非字母、非数字、非下划线,等价于 “ [^a-zA-Z_0-9] ”
public class RegexDemo {
public static void main(String[] args) {
// 匹配任意数据
iMatch("a",".");
// 匹配任意空格数据,可能是空格、换行、制表符
iMatch(" ","\\s");
iMatch("\n","\\s");
iMatch("\t","\\s");
// 匹配任意非空格数据
iMatch("%","\\S");
// 匹配字母、数字、下划线
iMatch("Q","\\w");
iMatch("7","\\w");
iMatch("_","\\w");
// 匹配非字母、非数字、非下划线
iMatch("*","\\W");
}
private static void iMatch(String str, String regex){
System.out.println(str.matches(regex));
}
}
4、边界匹配
- “ ^ ” 表示边界匹配开始
- “ $ ” 表示边界匹配结束
(重点)5、数量表达,默认情况下,只有添加了数量表达才可以匹配多个字符
- “ 表达式? ” 表示该正则表达式可以出现0次或者1次
- “ 表达式* ” 表示该正则表达式可以出现任意次数(包含0次)
- “ 表达式+ ” 表示该正则表达式至少出现1次
- “ 表达式{n} ” 表示该正则表达式正好出现n次
- “ 表达式{n,} ” 表示该正则表达式至少出现n次
- “ 表达式{n,m} ” 表示该正则表达式出现次数在{n,m}范围之内
public class RegexDemo {
public static void main(String[] args) {
// 表达式出现0次或者1次,true、true
iMatch("a","\\w?");
iMatch("","\\w?");
// 表达式出现任意次数,true
iMatch("JavaRegexDemo","\\w*");
// 表达式出现至少1次,true、false
iMatch("JavaRegexDemo","\\w+");
iMatch(" abv","\\w+");
// 表达式正好出现n次,true、false
iMatch("110","\\d{3}");
iMatch("1100","\\d{3}");
// 表达式至少出现n次,false、true、true
iMatch("11","\\d{3,}");
iMatch("110","\\d{3,}");
iMatch("1100","\\d{3,}");
// 表达式出现n~m次,true
iMatch("1100","\\d{2,5}");
}
private static void iMatch(String str, String regex){
System.out.println(str.matches(regex));
}
}
6、逻辑表达式,用于连接多个正则表达式
- 表达式X表达式Y:表示表达式X后紧跟着表达式Y
- 表达式X|表达式Y:有一个表达式满足即可
- (表达式):为表达式设置一个整体描述,可以设置数量单位