正则表达式可以简化对字符串的复杂操作。
一、匹配
import java.util.Scanner;
/**/
public class check {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String x = input.nextLine();
checkTel(x);
// checkQQ(x);
input.close();
}
/**
* 手机号码只有 13xxx 15xxx 18xxx 11位
* @param tel
*/
public static void checkTel(String tel){
String telReg = "1[358]\\d{9}";
System.out.println(tel.matches(telReg));
}
/**
* qq 5~15 0不能开头,只能是数字
* @param qq
*/
public static void checkQQ(String qq){
// String regex = "[1-9][0-9]{4,14}";
String regex = "[1-9]\\d{4,14}";
if(qq.matches(regex)){
System.out.println(qq+"is ok.");
}
else{
System.out.println(qq+"is not ok.");
}
}
}
二、获取
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Get {
public static void main(String[] args) {
getDemo();
}
private static void getDemo() {
String str = "ming tian jiu yao fang jia le ,da jia.";
// \\b是单词边界
String reg = "\\b[a-z]{4}\\b";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
//System.out.println(m.start()+"..."+m.end());
}
}
}
三、分割
public class split {
public static void main(String[] args) {
splitDemo();
}
private static void splitDemo() {
// String str = "zahngsan,lisi,wangwu";
// String reg = ",";
// String str = "zahngsan lisi wangwu";
// String reg = " +";
// String str = "zahngsan.lisi.wangwu";
// String reg = "\\.";
// \.代表正则表达式的普通的. 再转义\\.
// String str = "c:\\abc\\a.txt";
// String reg = "\\\\";
String str = "erkktyqquizzzzzo";//按照叠词完成切割
//可以将规则封装成一个组,用()完成。组的出线都有编号。
//从1开始。想要使用已有的组可以通过 \n(n为组的编号)的形式来获取
String reg = "(.)\\1+";
String[] arr = str.split(reg);
System.out.println(arr.length);
for(String s : arr){
System.out.println(s);
}
}
}
四、替换
public class ReplicAll {
public static void main(String[] args) {
String str = "wer1389980000ty1234564uiod23434234f44";
//将字符串中5个以上的数字替换成#
replaceAllDemo(str,"\\d{5,}","#");
String str1 = "erkktyqquizzzzzo";
//将叠词替换成&
replaceAllDemo(str1, "(.)\\1+", "&");
String str2 = "erkktyqquizzzzzo";
//将重叠的字符替换成单个字母zzzz->z
replaceAllDemo(str2, "(.)\\1+", "$1");
}
public static void replaceAllDemo(String str,
String reg,String newStr){
str = str.replaceAll(reg, newStr);
System.out.println(str);
}
}