Java 中正则的应用

本文介绍了Java中使用正则表达式的简单方法,并提供了几个常见字符串验证功能的实现,包括检查是否全为数字字符、字母字符、数字字母、下划线、连字符和数字字母组合,以及邮箱地址验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更多Java 正则知识参见: https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html


Java中使用正则很简单,主要分两步进行:

1,涉及的类,需要引入如下两个正则相关的类

import java.util.regex.Matcher;
import java.util.regex.Pattern;
2,定义正则匹配模式,编译,进行匹配操作和匹配结果使用

//(1), String xchar = "123"; //将进行匹配的变量
//(2), String numCharPattern = "[0-9]"; //正则匹配模式
//(3), Pattern pattern = Pattern.compile(numCharPattern); //编译正则
//(4), Matcher mat = pattern.matcher(xchar); //进行匹配操作
//(5), if(mat.find()){ //匹配结果使用,符合正则模式则返回true,否则返回false
//	System.out.println("符合正则匹配"); 
//     }else{ 
//	System.out.println("不符合 正则匹配"); 
//     }

如下常用例子:
package com.gc.fun;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * The class GlobalFuns. supply the global function to use. 
 *
 * @author: shenzhenNBA
 * @since: 2013-02-01	
 * @version: $Revision$ $Date$ $LastChangedBy$
 *
 */
public class GlobalFuns {

	public static boolean isNumberChar(String value) {
		//function: to check all value is number char or not
		//true = all is only number char, 
		//false = not all are number char  

		boolean tag = true;
		String numCharPattern = "[0-9]";
		Pattern pattern = Pattern.compile(numCharPattern);
		char[] chars = value.toCharArray();
		for (char c : chars) {
			Matcher mat = pattern.matcher(String.valueOf(c));
			if (!mat.find()) {
				tag = false;
			}
		}
		return tag;
	}
		
	public static boolean isLetterChar(String value) {
		//function: to check all value is letter char or not
		//true = all char is range of [a-zA-Z]; 
		//false = at lest one char is out of char range[a-zA-Z]
		boolean tag = true;
		String numCharPattern = "[a-zA-Z]";
		Pattern pattern = Pattern.compile(numCharPattern);
		char[] chars = value.toCharArray();
		for (char c : chars) {
			Matcher mat = pattern.matcher(String.valueOf(c));
			if (!mat.find()) {
				tag = false;
				break;
			}
		}
		return tag;
	}
		
	public static boolean isNumberLetterUnderlineMinusChar(String value) {
		//function: to check all value is range of [0-9a-zA-Z_-] or not
		//true = all char is range of [0-9a-zA-Z_-](number or letter or underline or minus); 
		//false = at lest one char is out of char range[0-9a-zA-Z_-]
		boolean tag = true;
		String numCharPattern = "[0-9a-zA-Z_-]";
		Pattern pattern = Pattern.compile(numCharPattern);
		char[] chars = value.toCharArray();
		for (char c : chars) {
			Matcher mat = pattern.matcher(String.valueOf(c));
			if (!mat.find()) {
				tag = false;
				break;
			}
		}
		return tag;
	}
	
	public static  boolean isLegalEmail(String email) {
		//function: to check param email is legal or not
		//true = is legal eamil address
		//false = not legal email address

		boolean tag = true;
		String emailPattern ="^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
		Pattern pattern = Pattern.compile(emailPattern);
		Matcher mat = pattern.matcher(email);
		if (!mat.find()) {
			tag = false;
		}
		return tag;
	}
	
	public static  boolean isNumberLetterChar(String value) {
		//function: to check value is range of [0-9a-zA-Z] or not
		//true = all char are range of range [0-9a-zA-Z]
		//false = at least one char is out of range [0-9a-zA-Z]

		boolean tag = true;
		String numCharPattern = "[0-9a-zA-Z]";
		Pattern pattern = Pattern.compile(numCharPattern);
		char[] chars = value.toCharArray();
		for (char c : chars) {
			Matcher mat = pattern.matcher(String.valueOf(c));
			if (!mat.find()) {
				tag = false;
			}
		}
		return tag;
	}	

	//can expand here
}

只要继承该类,即可直接使用已有的数字,字母,数字字母,email等验证功能,方便快速使用。


资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值