zoukankan      html  css  js  c++  java
  • Java正则表达式java.util.regex类的简单使用

    1、什么是正则表达式?

    正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径。正则表达式可以用于搜索、编辑或者处理文本和数据。
    Java.util.regex主要包含以下三类:

    • pattern类:
      pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
    • Matcher类:
      Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
    • PatternSyntaxException
      PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

    2、正则表达式主要用于对password、phone、Email等的合法性检查以下就是其简单应用:

    对应的类:

    package cn.lovepi.chapter07.action;
    import com.opensymphony.xwork2.ActionSupport;
    import java.util.regex.Pattern;
    /**
    * 
    * 数据校验示例——硬编码格式
    */
    public class ValidateAction extends ActionSupport{
        private String username;
        private String password;
        private String repassword;
        private String email;
        private String phonenumber;
        private int age;
        @Override
        public String execute() throws Exception {
            return SUCCESS;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getRepassword() {
            return repassword;
        }
        public void setRepassword(String repassword) {
            this.repassword = repassword;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getPhonenumber() {
            return phonenumber;
        }
        public void setPhonenumber(String phonenumber) {
            this.phonenumber = phonenumber;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    类对应的校验方法:

    public void validateExecute(){
            if (null==username || username.length()<6 ||username.length()>10) {
                this.addFieldError("username", "username has error");
            }
            if (null==password || password.length()<6||password.length()>10) {
                this.addFieldError("password", "password has error");
            }else if (null==repassword || repassword.length()<6||repassword.length()>10) {
                this.addFieldError("repassword", "repassword has error");
            }else if(!password.equals(repassword)){
                this.addFieldError("password", "tow password is not be same");
            }
            if (age<=0 ||age>150) {
                this.addFieldError("age", "年龄不符合人类规范!");
            }
            //验证邮箱! 123dsaw@163.com
            //只允许a-z A-Z 1-9 -_
            //正则表达式---专门用于复杂字符判断的技术
            Pattern p = Pattern.compile("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.([a-zA-Z0-9_-])+)+$");
            if (null==email || !p.matcher(email).matches()) {
                this.addFieldError("email", "邮箱验证失败!");
            }
            Pattern p1=Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8})|(0\d{2}-\d{7,8})|(0\d{3}-\d{7,8})$");
            if (null==phonenumber || !p1.matcher(phonenumber).matches()) {
                this.addFieldError("phonenumber", "电话格式不正确!");
                this.addActionError("action级别错误!");
            }
        }
    

    参考链接:

    https://blog.csdn.net/icarus_wang/article/details/53997632?locationNum=9&fps=1

    https://383984216-qq-com.iteye.com/blog/1396595

  • 相关阅读:
    焦虑:都说程序员是青春饭,那么程序员老了何去何从呢?
    数据库查询语句优化,mysql优化,join语句优化附带YYC松鼠短视频系统详细demo效果
    IT行业:为什么大部分人都不认可php语言呢?
    拇指赚点赞无加密源码发布分享仅供学习
    区块鼠区块养殖系统源码无加密源码发布分享仅供学习
    3月1日晚突遭大量攻击,网站/APP突然遭遇黑客攻击时该如何应对?
    ThinkPHP内核全行业小程序运营管理系统源码免费分享下载
    2020年不管打工还是创业,居然还有人相信读书无用论?
    在IT界,应聘企业去上班如果老板一点不懂技术那绝对是作茧自缚
    看了这篇文章你还不懂傅里叶变换,那我就真没办法呢!
  • 原文地址:https://www.cnblogs.com/yuanchao-blog/p/10668107.html
Copyright © 2011-2022 走看看