正则表达式 - 基础篇

简介: 正则表达式 - 基础篇

1.正则简介

- 1.使用特殊的符号来做校验,目标是操作字符串。例如:手机号码、邮箱、身份证的校验等。

2.使用正则表达式的优缺点

- 1.使用特殊的符号来做校验,目标是操作字符串。例如:手机号码、邮箱、身份证的校验等。

- 2.缺点:虽然能简化书写,但是正则表达式的阅读性较差。

3.正则表达式语法规则

image.pngimage.png

Ps1:+号表示前面字符的出现次数必须大于或等于1次(等价于 {1,})。
Ps2:表示“.”符号时,不能加单斜杠“/",因为点在正则里被使用过,所以加双斜杠“//”。

4.前台校验局限性image.png

Ps:可以通过审查元素将正则代码去掉。

5.正则综合运用

image.png

<body><formaction="/Rg/servlet/RegisterServlet"method="post"><p>用户名:<inputtype="text"name="username"pattern="[a-zA-Z]{6,12}"required="required"placeholder="请输入6-12位的字母"></p><p>&nbsp;:<inputtype="password"name="password"pattern="[0-9]{6,}"required="required"placeholder="请输入至少6位数字"></p><p>手机号:<inputtype="text"name="phone"pattern="1[3578]\d{9}"required="required"placeholder="请输入手机号"></p><p>&nbsp;:<inputtype="email"name="email"placeholder="请输入邮箱"required="required"></p><p><inputtype="submit"value="注册"><inputtype="reset"><inputtype="reset"value="重置"></p></form></body>
packagecn.java.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@WebServlet("/servlet/RegisterServlet")
publicclassRegisterServletextendsHttpServlet {
protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException, IOException {
//首先获取参数Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
Stringphone=request.getParameter("phone");
Stringemail=request.getParameter("email");
//对获取的参数信息进行校验//      用户名只能为字母,长度为6-12位:[a-zA-Z]{6,12}StringusernameRegex="[a-zA-Z]{6,12}";
//matches方法的含义是将获取过来的username和usernameRegex这个规则进行比对,如果满足要求则返回true,否则返回falsebooleanflag1=username.matches(usernameRegex);
//      密码只能为数字,长度至少为6位:[0-9]{6,},\\d{6}StringpassRegex="[0-9]{6,}";
booleanflag2=password.matches(passRegex);
//      手机号校验:[1][3578]\\d{9}StringphoneRegex="[1][3578][0-9]{9}";
booleanflag3=phone.matches(phoneRegex);
//      邮箱校验:[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\\d+)(\\.[a-zA-Z]+)+StringemialRegex="[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\\d+)(\\.[a-zA-Z]+)+";
booleanflag4=email.matches(emialRegex);
//如果username、password、email、phone同时满足格式要求的话才打印数据,否则提示数据不满足格式要求if(flag1&&flag2&&flag3&&flag4){
//然后打印参数System.out.println("username="+username);
System.out.println("password="+password);
System.out.println("phone="+phone);
System.out.println("email="+email);
        }else{
System.out.println("亲,您输入的注册信息数据不满足格式要求,请检查仔细后在输入");
        }
    }
protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException, IOException {
doGet(request, response);
    }
}
packagecn.java.test;
publicclassRegexTest {
publicstaticvoidmain(String[] args){
Stringdata="1";//给定一个非数字Stringregex="\\D";//非数字booleanflag=data.matches(regex);
//System.out.println(flag);Stringdata2="abc";
Stringregex2="\\s";//空白字符booleanflag2=data2.matches(regex2);
//System.out.println(flag2);Stringdata3=" ";
Stringregex3="\\S";//非空白字符booleanflag3=data3.matches(regex3);
//System.out.println(flag3);Stringdata4="a";
Stringregex4="\\w";//单词字符[a-zA-Z_0-9]booleanflag4=data4.matches(regex4);
//System.out.println(flag4);Stringdata5="%";
Stringregex5="^\\W$";//非单词字符[a-zA-Z_0-9](^、$代表的是正则的起始与结束标记,可以省略不写)booleanflag5=data5.matches(regex5);
System.out.println(flag5);
    }
}

6.待更新...

目录
相关文章
学习正则表达式
学习正则表达式
53 0
|
8月前
|
C++
正则表达式基础
正则表达式基础
|
自然语言处理 Rust 算法
【算法】10. 正则表达式匹配(多语言实现)
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。
|
SQL Linux Shell
正则表达式实战
本文都是基于Linux 支持的正则来实战。关于正则的流派见这里。
151 1
正则表达式实战总结
正则表达式实战总结
64 0
|
算法 C语言 数据安全/隐私保护
【C++技能树】快速文本匹配 --正则表达式介绍与C++正则表达式使用
假设要判断一个QQ号是否有效,他必须满足以下三个规则
133 0
正则表达式 获取功能
使用正则表达式获取符合规则的子串
|
Linux Python
30 分钟轻松搞定正则表达式基础
![](https://ceshiren.com/uploads/default/original/3X/3/d/3dd370fe849dfbae00034a32587f4431165fb220.jpeg) 提起正则表达式,可能大家的第一印象是:既强大好用但也晦涩难懂。正则表达式在文本处理中相当重要,各大编程语言中均有支持(跟 Linux 三剑客结合更是神兵利器)。 正则表达式是对字符串操作的一
|
算法 Shell Linux
正则表达式基础 | 学习笔记
快速学习正则表达式基础。
186 0

热门文章

最新文章