package Regular_expression;
import java.util.Scanner;
/*正则表达式通常用于校验
* 字符
x x字符
\\ 反斜线字符
\t 制表符
\n 换行符
\r 回车符
字符类:
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
预定义字符类:
. 任何字符 如果本身就是. \. qq.com 写正则表达式(\\.)
\d 数字:[0-9] 写正则表达式 :\\d
\w 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符 \\w
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界 尾 (helloword?haha:world)
Greedy 数量词(重点)
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X字符恰好出现n次
X{n,} X字符至少出现n次
X{n,m} X字符至少出现n次,但不超过m次
* */
public class Regular_expression_geberal_usage {
public static void main(String[] args) {
//用程序实现正则表达式的一些方法
/*校验1:
* 需求:检验电话号码归属的归属地
* 定义规则: 1)电话号码位数8-12位
* 3)全为数字
* 4)第一个数字必须为0
*
*
* */
//开始实现:
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//提醒用户输入
System.out.println("请输入你的电话号码");
//接收用户输入的电话号码
String phone = sc.nextLine();
//调用校验的功能
boolean flag = checkPhone(phone) ;
System.out.println(flag);
}
private static boolean checkPhone(String phone) {
//假设:返回值是true
boolean flag = true;
//进行判断
//1)位数是8-12位
if(phone.length() >= 88&&phone.length() <= 12){
//2)必须以0开头
while(phone.startsWith("0")){
//3)将字符串转换为字符数组
char[]ch = phone.toCharArray();
//4)遍历
for(int x = 0;x < ch.length;x++){
//获取每一个字符
char ch1 = ch[x] ;
//5)在while循环来判断是否是数字:Character 有一个方法:isDigit()
while(x != 0){
flag = true;
break;
}
}
}
}
else{
flag = false;
}
return flag;
}
}
import java.util.Scanner;
/*正则表达式通常用于校验
* 字符
x x字符
\\ 反斜线字符
\t 制表符
\n 换行符
\r 回车符
字符类:
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
预定义字符类:
. 任何字符 如果本身就是. \. qq.com 写正则表达式(\\.)
\d 数字:[0-9] 写正则表达式 :\\d
\w 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符 \\w
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界 尾 (helloword?haha:world)
Greedy 数量词(重点)
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X字符恰好出现n次
X{n,} X字符至少出现n次
X{n,m} X字符至少出现n次,但不超过m次
* */
public class Regular_expression_geberal_usage {
public static void main(String[] args) {
//用程序实现正则表达式的一些方法
/*校验1:
* 需求:检验电话号码归属的归属地
* 定义规则: 1)电话号码位数8-12位
* 3)全为数字
* 4)第一个数字必须为0
*
*
* */
//开始实现:
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//提醒用户输入
System.out.println("请输入你的电话号码");
//接收用户输入的电话号码
String phone = sc.nextLine();
//调用校验的功能
boolean flag = checkPhone(phone) ;
System.out.println(flag);
}
private static boolean checkPhone(String phone) {
//假设:返回值是true
boolean flag = true;
//进行判断
//1)位数是8-12位
if(phone.length() >= 88&&phone.length() <= 12){
//2)必须以0开头
while(phone.startsWith("0")){
//3)将字符串转换为字符数组
char[]ch = phone.toCharArray();
//4)遍历
for(int x = 0;x < ch.length;x++){
//获取每一个字符
char ch1 = ch[x] ;
//5)在while循环来判断是否是数字:Character 有一个方法:isDigit()
while(x != 0){
flag = true;
break;
}
}
}
}
else{
flag = false;
}
return flag;
}
}