java 常用正则表达式

时间:2025-02-14 16:45:06

java 常用正则表达式

正则表达式是描述字符串内容格式,使用它来匹配一个字符串的内容是否符合要求

1. []:表示一个字符,该字符可以是[]中指定的内容
	例如:
	[abc]:这个字符可以是a或b或c
	[a-z]:表示任意一个小写字母
	[a-zA-Z]:表示任意一个字母
	[a-zA-Z0-9_]:表示任意一个数字字母下划线
   [^abc]:该字符只要不是a或b或c
   
   预定义字符:
	.:表示任意一个字符,没有范围限制
	\d:表示任意一个数字,等同于[0-9]
	\w:表示任意一个单词字符,等同于[a-zA-Z0-9_]
	\s:表示任意一个空白字符
	\D:表示不是数字
	\W:不是单词字符
	\S:不是空白字符
	
	量词:
	?:表示前面的内容出现0-1次
	  例如: [abc]? 可以匹配:a 或 b 或 c 或什么也不写
	+:表示前面的内容最少出现1次
	  例如: [abc]+ 可以匹配:b或aaaaaa...或abcabcbabcbabc...
	        但是不能匹配:什么都不写 或 abcfdfsbbaqbb34bbwer...
	*:表示前面的内容出现任意次(0-多次)---匹配内容与+一致,只是可以一次都不写
	  例如: [abc]* 可以匹配:b或aaaaaaaaaa...或abcabcbabcbabcbabcbabbabab....或什么也不写
	        但是不能匹配:abcfdfsbbaqbb34bbwer...
	{n}:表示前面的内容出现n次
	  例如: [abc]{3} 可以匹配:aaa 或 bbb 或 aab 或abc 或bbc
	        但是不能匹配: aaaa 或 aad
	{n,m}:表示前面的内容出现最少n次最多m次
	  例如: [abc]{3,5} 可以匹配:aaa 或  abcab 或者 abcc
	        但是不能匹配:aaaaaa 或 aabbd
	{n,}:表示前面的内容出现n次以上(含n次)
	  例如: [abc]{3,} 可以匹配:aaa 或 aaaaa.... 或 abcbabbcbabcbabcba....
	        但是不能匹配:aa 或 abbdaw...
	()用于分组,是将括号内的内容看做是一个整体
	  例如: (abc){3} 表示abc整体出现3. 可以匹配abcabcabc
	        但是不能匹配aaa 或abcabc
	        (abc|def){3}表示abc或def整体出现3.
	        可以匹配: abcabcabc 或 defdefdef 或 abcdefabc
	        但是不能匹配abcdef 或abcdfbdef
	
	String支持与正则表达式相关的方法:
	matches():使用给定的正则表达式验证当前字符串的格式是否符合要求
	/*
		邮箱的正则表达式:
	  [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
	*/
	String email = "myemail@";
	String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
	boolean match = email.matches(regex);
	if(match){
	   System.out.println("是正确的邮箱");
	}else{
	   System.out.println("不是正确的邮箱");
	}