这里将自己学习java及其应用的一些笔记、积累分享一下,如果涉及到了文章、文字侵权,请联系我删除或调整。
一、正则表达式
1.1 概述
- Regular Expression 规则表达式
正确的字符串格式规则2019/3/12
- 一般用来判断用户输入的字符串,是否符合格式要求
- 无需记忆,可自行某搜索引擎检索“正则表达式大全”
1.2 常见用法
字符串的正则表达式匹配运算方法
- matches(正则)
当前字符串,是否能与指定的正则表达式相匹配
- split(正则)
"abc,def,ghi"
["abc", "def", "ghi"]
- replaceAll(正则,子串)
1.3 练习:正则表达式
package 正则表达式;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
System.out.println("--------------------------");
// f1(); // 身份证号校验
System.out.println("--------------------------");
f2(); // 电话号校验
}
private static void f2() {
System.out.println("请输入固定电话号:");
String s = new Scanner(System.in).nextLine();
/*
* 7位 \d{7-8}
* 8位 \d{7-8} // []不指定数量,必须且有且只匹配1个
* 区号+7或8位 010-1234567 (\d{3,4}-|\(\d{3,4}\))?\d{7,8}
* 区号+7或8位 0101-1234567
* \(是正则表达式语法格式,不是Java语法格式
*
* (\d{3,4}-|\(\d{3,4}\))?\d{7,8}
* ?前,匹配一个3或4位的区号;
* ?后,匹配一个7或8位的电话号
*/
// 判断输入格式
String regex = "\\d{7,8}|(\\d{3,4}-|\\(\\d{3,4}\\))?\\d{7,8}";
if(s.matches(regex)) {
System.out.println("格式正确!");
}else {
System.out.println("格式错误!");
}
}
private static void f1() {
System.out.println("请输入与身份证号:");
String s = new Scanner(System.in).nextLine();
/*
* 旧身份证15位 \d{15}
* 新身份证18位,末尾可以为X,x \d{17}[\dXx] // []不指定数量,必须且有且只匹配1个
* 两个匹配条件,用|
* 在字符串中,因为\为转移字符,所以都要双写
*/
// 判断输入格式
String regex = "\\d{15}|\\d{17}[\\dXx]";
/*正则表达式的书写一定要小心,不能再表达式中随意添加空格,会影响表达式的判断,最好紧挨着连续写*/
if(s.matches(regex)) {
System.out.println("格式正确!");
}else {
System.out.println("格式错误!");
}
}
}