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级别错误!");

}

}

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值