java中的正则操作方法总结
正则表达式在处理字符串的效率上是相当高的
关于正则表达式的使用,更多的是自己的经验,有兴趣可以参阅相关书籍
这里主要写一下java中的正则操作方法
实例1:匹配
import java.util.scanner;
class demo {
public static void main(string[] args) {
scanner sc = new scanner(system.in);
//获取输入
system.out.print("please enter:");
string str = sc.nextline();
check(str);
}
private static void check(string str) {
//匹配第一位是1-9,第二位及以后0-9(个数在4-10之间)
string regex = "[1-9][0-9]{4,10}";
/*
//匹配单个字符是大小写的a-z
string regex = "[a-za-z]";
//匹配数字,注意转义字符
string regex = "\\d";
//匹配非数字
string regex = "\\d";
*/
if(str.matches(regex)) {
system.out.println("匹配成功");
} else {
system.out.println("匹配失败");
}
}
}
此处string类中的matches()方法用于匹配
实例2:切割
import java.util.scanner;
class demo {
public static void main(string[] args) {
scanner sc = new scanner(system.in);
system.out.print("please enter:");
string str = sc.nextline();
split(str);
}
private static void split(string str) {
//匹配一个或多个空格
string regex = " +";
string[] arr = str.split(regex);
for (string s : arr) {
system.out.println(s);
}
}
}
此处string类中的split()方法用于按正则表达式切割,返回一个string数组
实例3:替换
import java.util.scanner;
class demo {
public static void main(string[] args) {
scanner sc = new scanner(system.in);
system.out.print("please enter:");
string str = sc.nextline();
replace(str);
}
private static void replace(string str) {
//匹配叠词
string regex = "(.)\\1+";
string s = str.replaceall(regex, "*");
system.out.println(s);
}
}
注意replaceall有两个参数,一个是正则,一个是替换的字符