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", "年龄不符合人类规范!");
        }
        //验证邮箱! [email protected]
        //只允许a-z A-Z 1-9 -_
        //正则表达式---专门用于复杂字符判断的技术
        Pattern p = Pattern.compile("^([a-zA-Z0-9_-])[email protected]([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

原文地址:https://www.cnblogs.com/yuanchao-blog/p/10668107.html

时间: 2024-10-09 02:02:33

Java正则表达式java.util.regex类的简单使用的相关文章

Java正则表达式Pattern和Matcher类

转载自--小鱼儿是坏蛋(原文链接) 概述 Pattern类的作用在于编译正则表达式后创建一个匹配模式.    Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配 Pattern类常用方法及介绍 1.  Pattern complie(String regex)    由于Pattern的构造函数是私有的,不可以直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表 达式编译并赋予给Pattern类 2.  String pattern

Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用

JDK8中增加了一系列时间的类, (据说)是为了干掉过去的Date,Calendar类的, 过去的Date类(据说)有着线程不安全等诸多弊端, 至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个常用的方法以后每次就调方法,再也不想看里面是怎么实现的了. 而发现了LocalDateTime这种新类以后,经过我的简单的试用,觉得完全可以取代掉之前使用时间的一切方法.非常好用,太好用了. 下面是简单的使用教程: 1,按照自由格式获取当前时间 public static String getTod

JAVA中 Map转换实体类对象简单实现 JSON

原文链接:https://blog.csdn.net/qq_23140197/article/details/86503875   (侵删) 开发的过程中往往依赖的表过多直接按Map来传递数值,某些场景需要把Map转换为实体类,这里贴一个最简洁的方法,依赖阿里的FastJSon. maven引入 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>

Java 后台验证的工具类

Java 后台验证的工具类 public class ValidationUtil {         //手机号     public static String mobile = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";       //不允许为空     public static String blank = ".*[^ ].*";  

java正则表达式及java.util.regex包的学习

参考http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html package sunfa.lx; import java.util.Arrays; import java.util.regex.Pattern; /** * java.util.regex包负责对字符序列进行正则表达式匹配 * Pattern负责编译 * Matcher负责匹配 * --------------- * 正

【java】java.util.regex.Pattern和java.util.regex.Matcher简单示例

1 package 正则; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class Test_regex { 7 public static void main(String[] args) { 8 String str="a1b22c333d4444e_55_555f666666g7777777"; 9 String regex="\\w*"; 1

Java.util.Calendar类简单介绍

Java.util.Calendar类 Calendar类是一个抽象类,里面提供了很多操作日历的方法.Calendar类无法直接创建对象使用,需要利用里面的一个静态方法getInstance(),该方法返回一个Calendar对象(子类对象).该静态方法使用默认时区和语言环境获取一个日历.这个静态方法是必须知道的否则根本玩不转Calendar. 1.Calendar类中的常量 Calendar cal = Calendar.getInstance(); cal.get(Calendar.DATE

JAVA正则表达式:Pattern类与Matcher类详解(转)

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

JAVA正则表达式:Pattern类与Matcher类详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作