Java正则匹配过滤数据、正则判断只包含某类字符

本文介绍了Java中如何使用正则表达式进行字符匹配和过滤。通过实例展示了如何编写正则表达式来匹配数字和单位,如W或KW,并获取匹配的数值。同时,还讲解了如何判断字符串是否只包含特定类型的字符,例如仅包含数字。代码示例演示了在集合中遍历字符串并应用正则表达式的操作过程。

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

Java正则写法可以上Java正则菜鸟网学习,使用中有些字符需要转译,如 “.” 不转译的话可代表任意字符,这样在匹配浮点数时就不正确了,如正则“[0-9]+.[0-9]+”,在正则匹配时,23.5是对的,23r5 也是对的,因为“.”在没有转译时可代表任意字符,所以在使用是需要转译,转译方法 “\\.”,注意这里是两个斜杠。

正则匹配过滤、 获取匹配的字符值

现在的需求是,将集合中的字符用正则匹配,判断字符中是否满足正则规则,满足则过滤出来进行特别的处理,代码如下:

List<String> list = Arrays.asList("RKAS2563-36.5W-25Ω-23J","R254-32W-32Ω","EKS235-220V-12W-35J","RS521-45V-63W-J");

int index = 0;
String numReg = "[0-9]+"//只匹配正整数  "+"代表匹配任意多次
String reg = "(-[0-9]+\\.[0-9]+[W])|(-[0-9]+[K][W])";//匹配数字加单位W或KW,如23.5W  23.5KW 23W 都可以匹配
String regx = "(-[0-9]+\\.[0-9]+[V])|(-[0-9]+[K][V])";
Pattern pattern = Pattern.compile(reg);
Pattern patternx = Pattern.compile(regx);

for(String str : list){
	Matcher matcher = pattern.matcher(str);
	if(matcher.find()){//如果匹配一次可以用if做判断,如果需要匹配多次可以用swile
		index = matcher.start();//获取第一次匹配的下标

		//正则匹配后也可以获取本次匹配的值,如上面我们匹配了功率值带单位W的字符,通过截取,获取到的字符为32W,我们可以获取数字,可以通过字符截取,也可以通过正则匹配获取数字32
		String arr = "32W";
		Pattern numPattern = Pattern.compile(numReg);
		Matcher numMatcher = numPattern.matcher(arr);
		if(numMatcher.find()){
			String num = numMatcher.group();//此方法用于获取与先前匹配结果匹配的输入子序列,可以获取到23
			
		}
		
		//下面就是对匹配的数据的一些特殊处理,这里只记录如何使用正则匹配,所以对数据的处理就不再详细赘述
		String powers = str.substring(index+1);
	}
}

正则判断字符是否只包含某类字符

String str = "123s";
Patter p = Patter.compile("[0-9]*");//正整数正则
if(pattern.matcher(str).matches()){//判断字符中是否只包含数字,返回boolean
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值