正则表达式
正则表达式是用来描述字符串内容格式,使用它通常用来匹配一个字符串的内容是否符合要求。
符号意义:
- []:表示一个字符,该字符可以是[]中指定的内容
- [abc]表示可以是a或者b或者c ;
- [^abc]表示该字符只要不是a或者b或者c;
- [a-zA-Z0-9_]:表示任意一个数字字母下划线
- .:表示任意一个字符,没有范围限制。可以表示任何可以通过键盘打印出来的字符
- \d:表示任意一个数字,等同于[0-9]
- \w:表示任意一个单词字符,等同于[a-zA-Z0-9_]
- \s:表示任意一个空白字符 等同于 [ \f\n\r\t\v]
- \D:表示不是数字 等同于 [^0-9]
- \W:表示不是单词字符 等同于 [^A-Za-z0-9_]
- 汉字在正则表示为 [\u4e00-\u9fa5]
限定符:
* | 匹配前面的子表达式零次或多次。 |
| 匹配前面的子表达式一次或多次。 |
? | 匹配前面的子表达式零次或一次。 |
{n} | n 是一个非负整数。匹配确定的 n 次。 |
{n,} | n 是一个非负整数。至少匹配n 次。 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 |
() | 用于分组,是将括号内的内容看着一个整体。 |
相关方法:
- matches():使用给定的正则表达式验证当前字符串的格式是否符合要求2
//邮箱
String email = "celinf@celinf.cn";
//匹配的正则
String regex = "[a-zA-Z0-9_] @[a-zA-Z0-9] (\\.[a-zA-z] )";
//matches()方法
boolean match = email.matches(regex);
if(match){
System.out.println("匹配成功");
}else{
System.out.println("匹配失败");
}
- split():将当前字符串按照满足正则表达式的部分进行拆分
String line = "123,456,789";
data = line.split(",");
//数组要打印输出,需要重写toString方法
System.out.println(Arrays.toString(data));
line = ".123.456.789......";
//最开始就是可拆分项,那么第一个数组中的元素是空字符串
//如果连续两个(l两个以上)可拆分,他中间会拆分出空字符串
//如果末尾连续多个可拆分项,那么拆出来的空字符串会被忽略
data = line.split("\\.");
//数组要打印输出,需要重写toString方法
System.out.println(Arrays.toString(data));
- replaceAll():将当前字符串中满足正则表达式
String line = "abc123def456ghi";
//将数字部分,换成#替代内容#
line = line.replaceAll("[0-9] ","#替代内容#");
System.out.println(line);
学习记录,参考于:blog.csdn.net/jason13579