前言
在网页中,密码输入错误的反馈,可以通过正则表达式来进行实现,正则表达式类似于数学中的公式,程序员根据业务需要,构建好正则表达式的公式,用户输入密码后,经过判断,系统返回布尔值,进行相应的反馈。
一、正则表达式是什么?
正则表达式是一种用于匹配和操作文本的强大工具,是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。
正则表达式可以在文本中查找、替换、提取和验证特定的模式。
二、使用方法
1.正则表达式的使用
(1)创建 String 类数据 编写正则表达式公式
使用方法:
使用方括号括起来若干个字符来表示一个字符,该元字符 可以表示方括号中任何一个字符
eg: [^456] 除456以外的任意字符
[a-r] 代表a~r中任意一个字母
[a-zA-Z] 代表任意一个英文字母
[a-e[g-z]] 代表a~e或g~z中任意字母(并集)
[a-o&&[def]] 代表字母 d、e、f(交集)
[a-d&&[^bc]] 代表字母a、d(差运算)
(ab)|(13)|(50) 代表“ab”、“13”、“50”任意一个值
正则表达式限定符
限定修饰符 | 意义 | 示例 |
? | 0或1次 | A? |
* | 0或多次 | A* |
+ | 0或多了几次 | A+7 |
{n} | 正好出现n次 | A{n} |
{n,} | 至少出现n次 | A{n,} |
{n,m} | 出现 n 次至 m 次 | A{n,m} |
&& | 和(交集) | A&&B |
| | 或 | A|B |
+ | 连接符 | A+B |
正则表达式元字符
元字符 | 正则表达式中的写法 | 意义 |
. | “.” | 代表任意一个字符 |
d | "\\d" | 代表0~9的任何一个数字 |
\D | "\\D" | 代表任何一个非数字字符 |
\s | "\\s" | 代表空白字符,如“\t”、“\n” |
\S | "\\S" | 代表非空白字符 |
\w | "\\w" | 代表可用作标识符的字符,但不包括“$” |
\W | "\\W" | 代表不可用于标识符的字符 |
(2)使用matches()方法 检测某字符串是否满足给定的正则表达式,返回布尔值
2.实操展示
示例1:
使用正则表达式判断 号码是否为手机号(总共十一位)
import java.util.Scanner; class regex{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); for(int i=0;i<5;i++) { System.out.println("请输入您的手机号码"); String phone = scan.nextLine(); String regex = "13[0-9]\\d{8}|15[012356789]\\d{8}|18[056789]\\d{8}"; if(phone.matches(regex)) { System.out.println("该号码是手机号"); System.out.println("--------------"); }else { System.out.println("该号码不是手机号"); System.out.println("--------------"); } } scan.close(); } }
正则表达式 13\\d{9}|15[012356789]\\d{8}|18[056789]\\d{8}
第一种电话格式:开头两位为13 再加上九位的随机数字
eg:13012345678
第二种电话格式:开头两位为15 第三位为除了4以外的数字 再加上八位的随机数字
eg:15012345678
第三种电话格式:开头两位为18 第三位为除了1234以外的数字 再加上八位的随机数字
eg:18056789097
示例2:
使用正则表达式判断 指定变量是否是合法的 E-mail邮箱地址
import java.util.Scanner; class regex{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); for(int i=0;i<5;i++) { System.out.println("请输入您的邮箱地址"); String phone = scan.nextLine(); String regex = "\\w+@+\\w+(\\.\\w{2,3})*"; if(phone.matches(regex)) { System.out.println("该邮箱是邮箱地址"); System.out.println("--------------"); }else { System.out.println("该邮箱不是邮箱地址"); System.out.println("--------------"); } } scan.close(); } }
正则表达式 \\w+@+\\w+(\\.\\w{2,3})*+\\.\\w{2,3}
解释: 除了$的所有符号(不限个数)+@+ 除了$的所有符号(不限个数)+ .+除了$的所有符号(2-3个)
注:括号中的内容为一个整体,* 号让这个整体,可以出现0或无数次
总结
以上就是正则表达式的简单介绍,本文仅仅简单介绍了正则表达式的使用,而正则表达式提供了能使我们校对数据,判断密码,设计权限范围的能力。