这里列出常用正则表达规范:
1、\\ :表示 '\'字符
2、\t :制表符
3、\n :换行
4、[abc]: 字符a、b或c
5、[^abc]: 除了abc以外的所有字符
6、[a-zA-Z0-9]:表示由字母、数字组成
7、\d :数字
8、\D :非数字
9、\w :字母、数字或者下划线
10、\W :非字母、数字或者下划线
11、\s :所有空白字符(换行、空格等)
12、S :所有非空白字符
13、^ :行的开头
14、$ :行的结尾
15、. :匹配除了换行符之外的所有字符
——数量表示
1、X :必须出现一次
2、X* :可以出现任意次数
3、X+ :可以出现一次或多次
4、X{n} :必须出现n次
5、X{n,} :必须出现n次以上
6、X{n,m} :必须出现n~m次
——逻辑运算符
1、XY :X规范后跟着Y规范
2、X|Y :X或者Y规范
3、(X) :作为一个捕获组规范
测试代码:
public static void main(String[] args) {
testRegex();
testStringRegex();
// 列出虚拟机全部环境属性
System.getProperties().list(System.out);
}
/**
* @param args
* 验证一个字符串是否是合法的日期格式
*/
public static void testRegex() {
String dateStr = "1987-07-27";
// 指定好正则表达式
String patStr = "\\d{4}-\\d{2}-\\d{2}";
// 创建pattern类实例
Pattern pattern = Pattern.compile(patStr);
// 实例化Matcher类
Matcher matcher = pattern.matcher(dateStr);
// 使用正则表达式进行匹配
if (matcher.matches()) {
System.out.println("日期格式合法");
}else {
System.out.println("日期格式不合法");
}
}
/**
* String类与正则表达式
*/
public static void testStringRegex() {
// 要求将String里面的字符取出
String string = "a1b22c333d4444e55555f";
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
String newStr = matcher.replaceAll("_");
System.out.println(newStr);
}
注:Java主要使用Pattern和Matcher类实现字符串正则表达式的匹配
运行结果如下: