正则表达式应用

11 篇文章 0 订阅
5 篇文章 0 订阅

package cn.reg;

import java.util.Arrays;

import org.junit.Test;

public class TestReg {

/**
 * 测试matches 方法  及  普通字符使用
 */
@Test
public void test1(){
	String reg1 = "[xyz]";
	String reg2 = "[a-z&&[^aef]]";
	
	/*
	 * matches(regex):字符串的匹配 正则方法      ,是全匹配方法    regex参数是正则表达式字符串
	 */
	System.out.println("y".matches(reg1));//true
	System.out.println("a".matches(reg2));//false
	
	//需求:要求匹配一个数字字符,数字字符只能是3、4、6、7、8、9
	String reg3 = "[346789]";//[0-9&&[^0125]]
	
}


/**
 * 元字符   
 * 
 */
@Test
public void test2(){
	String reg1 = "\\d";//  0-9
	String reg2 = "\\D";// 除0-9
	String reg3 = "\\w";// a-zA-Z0-9_
	String reg4 = ".";
	
	System.out.println("1".matches(reg1));//true   
	System.out.println("1".matches(reg2));//false
	System.out.println("_".matches(reg3));//true
	System.out.println("A".matches(reg3));//true
	System.out.println("	".matches(reg4));//true
}

/**
 * 数字元字符
 * 
 * 匹配邮编
 * 6位数字
 */
@Test
public void test3(){
	String reg1 = "[\\d][\\d][\\d][\\d][\\d][\\d]";//不使用数字元字符
	String reg2 = "[\\d]{6}";
	
	System.out.println("510000".matches(reg1));//true
	System.out.println("510000".matches(reg2));//true
	
	//案例:  匹配年龄      百:1-2    十:0-9   个:0-9
	String reg3 = "[1-2]?[\\d][\\d]";
	
}

/**
 * 转义字符
 * 匹配  :  +0086
 */
@Test
public void test4(){
	String reg1 = "\\+[\\d]{4}";
	System.out.println("+0086".matches(reg1));
}

/**
 * 分组
 * 
 * 匹配:整数或者小数               整数位    1-9  +      小数位             \.   0-9  + 
 *                          0
 */
@Test
public void test5(){
	String reg = "([1-9][0-9]*|0)(\\.[0-9]+)?";
	
	System.out.println("1050.0".matches(reg));
	System.out.println("11".matches(reg));
	System.out.println("0.6".matches(reg));
}

/**
 * ^:表示匹配开头
 * $:表示匹配结尾
 * ^$结合表示必须完全匹配
 * 检测用户名或密码是否合法,第一个字符必须是英文,可以包含大小写英文、下划线、0-9数字,长度为6~16位
 * 
 * [a-zA-Z][\\w]{5,15}
 * 
 */
@Test
public void test6(){
	String reg = "[a-zA-Z][\\w]{5,15}";
	String name = "a1234567890123456789";
	
	String[] split = name.split(reg);
	System.out.println(Arrays.toString(split));
	
	String reg2 = "^[a-zA-Z][\\w]{5,15}$";
	String[] split2 = name.split(reg2);
	System.out.println(Arrays.toString(split2));
	
	System.out.println(name.matches(reg));//false
	System.out.println(name.matches(reg2));//false
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值