正则表达式

正则表达式

1 . 任意单个字符,除了换行符外

一个点就代表一个字符

		String str="Java";
		System.out.println(str.matches("..va"));//输出true
		System.out.println(str.matches(".va"));//输出false	

2 (ab|cd) ab或者cd

		String str="ten";
		System.out.println(str.matches("t(en|im)"));//输出true
		//单个字符或者多个字符也是可以的哦
		String str1="Java";
		System.out.println(str1.matches("J(a|v)va"));//输出true
		System.out.println(str1.matches("(Jav|JJJ)a"));//输出true

3 [abc] a或b或c

		String str="Java";
		System.out.println(str.matches("Ja[uw]a"));//输出false
		System.out.println(str.matches("Ja[uvw]a"));//输出true

4 [ [ [^abc ] ] ] 除了a、b或者c之外的任意字符

		String str1="Java";					
		System.out.println(str1.matches("Ja[^abcdv]a"));//输出false
		System.out.println(str1.matches("Ja[^abcd]a"));//输出true

5 [a-z] a到z

是区分大小写的,两端都是闭区间

		String str1="Java";
		System.out.println(str1.matches("Ja[A-V]a"));//输出false					    
        System.out.println(str1.matches("Ja[a-v]a"));//输出true		

6 [a-e[m-p]] a到e或者m到p

		String str1="Java";
		System.out.println(str1.matches("[A-G[I-M]]av[a-d]"));//输出true

7 [a-e&&[c-p]] a到e与c到p的交集

		String str1="Java";
		System.out.println(str1.matches("[A-P[I-M]]av[a-d]"));//输出true
	

Tips 为什么正则表达式是\d,而敲的时候要\\d呢

因为反斜杠是一个特殊的字符,在字符串中开始转移序列,因此用\ \来表示\

8 \d 一位数字,等同于0-9

		String str1="Java23";
		System.out.println(str1.matches("Java[\\d][\\d]"));//输出true,两位数字就要用两次哦
        System.out.println(str1.matches("Java\\d\\d"));//输出true,意外发现,不需要方括号也可以输出

9 \D 一位非数字

		String str1="Java23";
        System.out.println(str1.matches("[\\D]ava23"));//输出true		System.out.println(str1.matches("J\\Dva\\d\\d"));//输出true

10 \w 单词字符

单词字符是任意的字母,数字或者下划线字符。

11 \W 非单词字符

12 \s 空白字符

13 \S 非空白字符

14 p* 0次或者多次出现模式p

多个字母要加括号哦

		String str1="ababa";
		System.out.println(str1.matches("(ab)*"));//输出false,只能是0次或者是多次
		String str2="ababab";
		System.out.println(str2.matches("(ab)*"));//输出true
		String str3="aaaaaa";
		System.out.println(str3.matches("(ab)*"));//输出false,不是说0次也可以吗,为什么是false
		System.out.println(str3.matches("aaaaaa(ab)*"));//这样就输出true了哇

15 p+ 一次或者多次出现模式p

	String str1="aaa";	
	System.out.println(str1.matches("a+b*"));//输出true

16 p? 0次或者1次出现模式p

	String str1="aaa";	System.out.println(str1.matches("b?"));//输出false
	System.out.println(str1.matches("aaab?"));//输出true

17 p{n} 正好出现n次模式p

18 p{n,} 至少出现n次模式p

19 p{n,m} n到m出现模式p

		String str1="abb";	System.out.println(str1.matches("a{1,9}bb"));//输出true,说明是包含n到m的		System.out.println(str1.matches("a{2,9}bb"));//输出false

20 \p{P} 一个标点字符

		String str1="j!erw";
		System.out.println(str1.matches("j\\p{P}erw"));//输出true

示例:

1.社会安全号的模式为xxx-xx-xxxx,x是一位数字

		String str1="111-22-2222";
		//表示数字恰好出现了3次-恰好出现了2次-恰好出现了4次
		System.out.println(str1.matches("[\\d]{3}-[\\d]{2}-[\\d]{4}"));//输出true

2.偶数表示

偶数是以数字0、2、4、6、8结尾

		String str1="112";
		System.out.println(str1.matches("[\\d]*[02468]"));//输出true,结尾是偶数就行了为什么只要结尾就行了呢

3 电话号码表示模式是(xxx)-xxx-xxxx, x代表一位数字,其中不能以0开头

		String str1="(123)-123-1231";
		System.out.println(str1.matches("\\([\\d]{3}\\)-[\\d]{3}-[\\d]{4}"));//输出true
		String str1="(123-123-1231";
		System.out.println(str1.matches("\\([\\d]{3}\\)-[\\d]{3}-[\\d]{4}"));//输出false,少括号不行哦

tips ()在正则表达式中是特殊字符,用于对模式分组。为了在正则表达式中表示字面值,必须使用 \ \

4.假定姓由最多25个字母组成,并且第一个字母为大写

		String str1="Adsfds";
		System.out.println(str1.matches("[A-Z][a-z[A-Z]]{1,24}"));//输出true

tips 不能随便将空白符放入到正则表达式中,会报错 ,编译都过不了

5 java标识符

标识符必须以字母,下划线或者以美元符号($)开头,不能以数字开头

标识符是一个由字母,数字,下划线或美元符号组成的字符序列

		String str1="Adsfds$";
		System.out.println(str1.matches("[a-z[A-Z][$]][\\w||$]*"));//输出true
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值