一、正则表达式-Regex
正则表达式的几种用法如下:
1)matches() ---->按条件匹配(电话号码/邮箱)
2)split() ---->按条件分割
3)repalceAll() ---->按条件替换内容4)Pattern-Matcher ---->按条件查找/获取
5)分组查询(去除叠词) ---->去除叠词
二、具体实现代码实例如下:import Java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
//测试
System.out.println(matchPhoneNum("1231321141"));
System.out.println(matchEmail("[email protected]"));
System.out.println(getSplit("12-xx-2-1"));
System.out.println(getReplace("rerqg42675757hhhff"));
System.out.println(getNoRep("我是是是是是是是是一个 程序员"));
}
//1.匹配matches()方法 如:匹配一个手机号
public static boolean matchPhoneNum(String num){
String regex="1[34578]\\d{9}";
return num.matches(regex);
}
//2.匹配一个邮箱
public static boolean matchEmail(String num){
String regex="[a-zA-Z0-9]+@[a-zA-Z0-9]{2,6}(\\.[a-zA-Z0-9]{2,3})+";
// String regex="\\w+@\\w{2,6}(\\.\\w{2,3})+";
return num.matches(regex);
}
//3.split()切割方法
public static String getSplit(String str){
String regex="-";//这里面定义切割规则 如"-" " "等
String[] strArray=str.split(regex);//split()方法得到的是一个字符串数组
return Arrays.toString(strArray);
}
//4.replaceAll()方法 举例将字符串中数字全部替换为"~"
public static String getReplace(String str){
String regex="\\d+";//要替换的内容的规则
String replace="~";//替换成的内容
return str.replaceAll(regex, replace);
}
//5.查找功能 举例查找所有单词字符
public static void findString(String str){
//1.定义查找规则
String regex="\\w";
//2.将规则编译成模式对象
Pattern p=Pattern.compile(regex);
//3.通过模式对象得到匹配器Matcher对象
Matcher m=p.matcher(str);//这里需要传入被查找的字符串
//4.调用匹配器find()功能 循环遍历 通过group()功能获取结果
while(m.find()){
System.out.print(m.group());
}
}
//6.补充 利用replaceAll() 去除叠词功能 如"我是是是是是是是是一个 程序员",这里只要一个是
public static String getNoRep(String str){
//属于分组查询功能:1代表括号的序号,若有多组括号,则不同序号代表对应组的序号
String regex="(.)\\1+";//代表任意出现一次以上的字符
return str.replaceAll(regex, "$1");//$1代表组序号为1的内容
}
}
一、正则表达式-Regex
正则表达式的几种用法如下:
1)matches() ---->按条件匹配(电话号码/邮箱)
2)split() ---->按条件分割
3)repalceAll() ---->按条件替换内容4)Pattern-Matcher ---->按条件查找/获取
5)分组查询(去除叠词) ---->去除叠词
二、具体实现代码实例如下:import Java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
//测试
System.out.println(matchPhoneNum("1231321141"));
System.out.println(matchEmail("[email protected]"));
System.out.println(getSplit("12-xx-2-1"));
System.out.println(getReplace("rerqg42675757hhhff"));
System.out.println(getNoRep("我是是是是是是是是一个 程序员"));
}
//1.匹配matches()方法 如:匹配一个手机号
public static boolean matchPhoneNum(String num){
String regex="1[34578]\\d{9}";
return num.matches(regex);
}
//2.匹配一个邮箱
public static boolean matchEmail(String num){
String regex="[a-zA-Z0-9]+@[a-zA-Z0-9]{2,6}(\\.[a-zA-Z0-9]{2,3})+";
// String regex="\\w+@\\w{2,6}(\\.\\w{2,3})+";
return num.matches(regex);
}
//3.split()切割方法
public static String getSplit(String str){
String regex="-";//这里面定义切割规则 如"-" " "等
String[] strArray=str.split(regex);//split()方法得到的是一个字符串数组
return Arrays.toString(strArray);
}
//4.replaceAll()方法 举例将字符串中数字全部替换为"~"
public static String getReplace(String str){
String regex="\\d+";//要替换的内容的规则
String replace="~";//替换成的内容
return str.replaceAll(regex, replace);
}
//5.查找功能 举例查找所有单词字符
public static void findString(String str){
//1.定义查找规则
String regex="\\w";
//2.将规则编译成模式对象
Pattern p=Pattern.compile(regex);
//3.通过模式对象得到匹配器Matcher对象
Matcher m=p.matcher(str);//这里需要传入被查找的字符串
//4.调用匹配器find()功能 循环遍历 通过group()功能获取结果
while(m.find()){
System.out.print(m.group());
}
}
//6.补充 利用replaceAll() 去除叠词功能 如"我是是是是是是是是一个 程序员",这里只要一个是
public static String getNoRep(String str){
//属于分组查询功能:1代表括号的序号,若有多组括号,则不同序号代表对应组的序号
String regex="(.)\\1+";//代表任意出现一次以上的字符
return str.replaceAll(regex, "$1");//$1代表组序号为1的内容
}
}