JAVA基础(第16天 正则表达式)

正则表达式

package com.wdzl.demo01;
/**
 * 正则表达式
 *1、\t 空格 ('\u0009')

* 2、\n 换行 ('\u000A')

* 3、\\ 反斜杠

* 4、\r 回车 ('\u000D')

* 5、\d 数字等价于[0-9]

* 6、\D 非数字等价于[^0-9]

* 7、\s 空白符号 [\t\n\x0B\f\r]

* 8、\S 非空白符号 [^\t\n\x0B\f\r]

* 9、\w 单独字符 [a-zA-Z_0-9]

* 10、\W 非单独字符 [^a-zA-Z_0-9]

* 11、\f 换页符

* 12、\e Escape
 *
 */
public class TestRegx {
	public static void main(String[] args) {
		String s1 = "3";
		//数字 一个任意数字
		String regex = "\\d"; //[0-9]
		System.out.println("数字:"+s1.matches(regex));//true
		
		String s2 = "a";
		//一个任意小写字母
		regex = "\\p{Lower}";
		System.out.println("小写字母:"+s2.matches(regex));//true
		
		String s3 = "X";
		//一个任意大写字母
		regex = "\\p{Upper}";
		System.out.println("大写字母:"+s3.matches(regex));//true
		
		String s4 = "d";
		//一个任意大小写字母
		regex = "[a-zA-Z]";
		System.out.println("任意一个大小写字母:"+s4.matches(regex));//true
		
		String s5 = ";";
		//一个任意数字字母下划线分号
		regex = "[a-zA-Z0-9_;]";
		System.out.println("任意一个数字字母下划线分号:"+s5.matches(regex));//true
		
		String s6 = "\f"; //包括\t  \n  \t(Enter)   \f(换页符)等
		//一个任意空白字符
		regex = "\\s";
		System.out.println("空白字符:"+s6.matches(regex));
		
		
		String s7 = "^"; 
		//一个任意非数字字符
		regex = "\\D";
		System.out.println("任意一个非数字字符:"+s7.matches(regex));
		
		String s8 = "3535345"; 
		//任意   0或多个数字
		regex = "\\d*";
		System.out.println("任意0个或多个数字:"+s8.matches(regex));
		
		String s9 = "3"; 
		//任意   0或1个数字
		regex = "\\d?";
		System.out.println("任意0个或1个数字:"+s9.matches(regex));
		
		String s10 = "4534"; 
		//任意   1或多个数字
		regex = "\\d+";
		System.out.println("任意1个或多个数字:"+s10.matches(regex));
		
		String s11 = "123"; 
		//任意   n~m个数字
		regex = "\\d{3,10}";
		System.out.println("任意n~m个数字:"+s11.matches(regex));
		
		
		String s12 = "12345"; 
		//任意   n个数字
		regex = "\\d{6}";
		System.out.println("任意6个数字:"+s12.matches(regex));
		
		String s13 = "1234534322"; //
		//任意 至少 n个数字
		regex = "\\d{6,}";
		System.out.println("任意至少6个数字:"+s13.matches(regex));
		
		String s14 = "3faea";
		//包含数字字母下划线 不能数字开头 3-6
		regex = "[a-zA-Z_]\\w{2,5}";
		System.out.println("包含数字字母下划线,不能以数字3~6开头:"+s14.matches(regex));
		
		//电话号码:手机和座机  029 0374  02978884545 029-34343443 029
		String s15 = "029-12345678910";
		String regex1 = "(029|0374)-\\d{11}";
		System.out.println("电话号码:"+s15.matches(regex1));
	}
}

在这里插入图片描述


package com.wdzl.homework;

import java.util.Scanner;

public class TestRegex {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//座机
		座机要求:0开头,0后面可以23位数字,然后是中划线-,
		第一个?表示-可有可无,第二个?表示(0\\d{2,3}-?)可有可无,然后是78位数字。
		//或者1或01开头(?表示重复前面的内容0次或1次),然后是10位数字。
		String regex = "(0\\d{2,3}-?)?\\d{7,8}";
		String tel1 = "0121234567";
		String tel2 = "012-1234567";
		String tel3 = "1234567";
		System.out.println("请输入一个电话号码:");
		System.out.println(tel1.matches(regex));
		System.out.println(tel2.matches(regex));
		System.out.println(tel3.matches(regex));
		test(args);
	}
	
	public static void test(String[] args) {
//		String regex = "[a-zA-Z_]\\w{2,9}";
		String regex = "[\\w&&[^\\d]]\\w{2,9}";
		String username = "sszhn";
		System.out.println(username.matches(regex));
		int count = 0;
		//sdffsdsdsfds
		if(username.replaceAll("\\d+", "").length()<username.length()) {//包含数字
			count++;
		}
		if(username.contains("_")) {//包含数字
			count++;
		}
		if(username.replaceAll("[a-zA-Z]+", "").length()<username.length()) {//包含数字
			count++;
		}
		//包含_
		System.out.println(count);
		
	}

}

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值