常用的正则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDNhejingzhou/article/details/52167898

一、基础打印范例

package com.hejingzhou.zehngzebiaodashi;

public class Test {
	public static void main(String[] args) {
		String str = "t";
		// System.out.println(str.matches("x"));//表示由一位字符组成
		String str1 = "a";
		System.out.println(str1.matches("[abc]"));// 表示判断对象是否是中括号中的任意一个字符
		System.out.println(str1.matches("[^abc]"));// 表示判断对象是否不是中括号给出的字符
		System.out.println(str1.matches("[a-z]"));// 判断字符是否是中括号给定的字符范围小写英文
		System.out.println(str1.matches("[a-zA-Z]"));// 判断字符是否是英文字母
		String str2 = "0";
		System.out.println(str2.matches("[0-9]"));// 判断是否是单个数字字符组成的
		System.out.println(str2.matches("."));// 判断对象是否是单个字符

		System.out.println(str2.matches("\\d"));// 也就相当于【0-9】但需要注意的是必须是俩个\\进行第二个\转义
		System.out.println(str2.matches("\\D"));// 表示判断是否不是从0-9这个范围

		String str3 = "\t";
		System.out.println(str3.matches("\\s"));// 表示是否是空白字符(\t \n 都是空白字符)
		System.out.println(str3.matches("\\S"));// 表示是否不是空白字符

		String str4 = "d";
		System.out.println(str4.matches("\\w"));// 表示是否是 有大小写字符数组成。
		System.out.println(str4.matches("\\W"));// 表示是否不是由大小写字符数字组成。

		/**
		 * 边界表达式: ^表示正则的开始 $表示正则的结束
		 */
		// 正则表达式? 表示次正则可以出现0次或者1次
		String str5 = "";
		System.out.println(str5.matches("\\d?"));// 这样的话如果str5是空的,那么这个返回的结果还是true
		// 正则表达式+ 表示这个正则可以出现一次或者一次以上,但是没有写就是会返回false了
		String str6 = "4432";
		System.out.println(str6.matches("\\d+"));// str6中的数字可以是多位数的,但并不能保证他是空的
		// 正则表达式* 表示这个正则表达式可以出现0次一次或者是多次
		System.out.println(str6.matches("\\d*"));// str6这里可以写一个数字可以写多个数字,也可以不写数字,这样都会返回true
		// 正则表达式{n} 表示这个正则表达式出现的次数必须为n此,否则返回false
		String str7 = "432";
		System.out.println(str7.matches("\\d{3}"));// 表示这个这则中的数字必须是三位数否则false
		// 正则表达式{n,}
		System.out.println(str7.matches("\\d{3,}"));// 表示这个字符出现的位数必须在3位包括三位以上

		// 正则表达式{n,m}
		String str8 = "4322gfds";
		System.out.println(str8.matches("\\w{6,14}"));// 表示这个数字的长度需要在6--14位之间返回true,否则返回false
		/**
		 * 正则1正则2 :正则1判断之后继续判断正则2 正则1 | 正则2 : 正则1 或者是正则2有一组满足即可
		 * (正则):将多个正则作为一组,可以为这一组单独设置出现的次数
		 */
	}
}

二、小例程

		.	任意字符
		+	至少1个		{1,}
		?	最多1个		{0,1}
		*	任意个		{0,}
		[0-9]	数字
		[a-zA-Z]	字母
		[a-zA-Z0-9]	字母和数字
		[a-d[2-6]]	abcd或23456	并集
		[^0-9]	不是数字的字符,非数字
		[a-f &&[d-w]]	def 交集
		[0-9[^3-6]]		任意字符
		[0-9 &&[^3-6]]	0-2,7-9 交集
		[\u4e00-\u9fa5]	中文
		{1}		恰好出现1次
		{1,}	至少1次
		{1,3}	最少1次最多3次
		\d	数字	[0-9]
		\D	非数字	[^0-9]
		\w	字母数字下划线	[a-zA-Z0-9_]
		\W	非字母数字下划线	[^a-zA-Z0-9_]
		\s	空白字符	[\r\n\t]
		\S	非空白字符	[^\r\n\t]
		^	开头
		$	结尾
		|	或者


		//至少1位数字,只能是数字
		regex="[0-9]{1,}";
		//验证QQ号,5到11位数字
		regex="[1-9]{1}[0-9]{4,11}";
		//验证手机号,11位数字
		regex="[1]{1}[3-8&&[^6]]{1}[0-9]{9}";
		//验证是否为中文,2到4个中文
		regex="[\u4e00-\u9fa5]{2,4}";
		//验证用户名,字母数字下划线,只能以字母开头,最少6位最多18位
		regex="[a-zA-Z]{1}\\w{5,17}";
		//验证输入的是一年的12个月
		regex="[0]{1}[1-9]{1}|[1]{1}[0-2]{1}";
		//邮箱
		regex="[a-zA-Z1-9]{1}\\w{4,17}@[a-zA-Z0-9]{2,6}\\.{1}[a-zA-Z]{2,}";

		Scanner scanner=new Scanner(System.in);
		String regex="[0-9]{1,}";//至少1位数字,只能是数字
		regex="[1-9]{1}[0-9]{4,11}";//验证QQ号,5到11位数字
		regex="[1]{1}[3-8&&[^6]]{1}[0-9]{9}";//验证手机号,11位数字
		regex="[\u4e00-\u9fa5]{2,4}";//验证是否为中文,2到4个中文
		//练习:验证用户名,字母数字下划线,只能以字母开头,最少6位最多18位
		regex="[a-zA-Z]{1}\\w{5,17}";
		//练习:验证输入的是一年的12个月
		regex="[0]{1}[1-9]{1}|[1]{1}[0-2]{1}";
		
		regex="[a-zA-Z1-9]{1}\\w{4,17}@[a-zA-Z0-9]{2,6}\\.{1}[a-zA-Z]{2,}";//邮箱
		System.out.println("请输入你的邮箱:");
		
		//练习:验证密码,只能有字母和数字组成,要求必须包含数字或字母
		regex="([a-zA-Z]{1}|[0-9]{1})[a-zA-Z0-9]{1,}";
		String msg=scanner.nextLine();
		
		//matches:按照对应的正则表达式进行内容的校验
		System.out.println("matches---->"+msg.matches(regex));


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页