正则表达式的使用

正则表达式的用法

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

    构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

    正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

正则表达式的字符分类

  字符类

	[abc] 	a、b 或 c(简单类)
	[^abc] 任何字符,除了 a、b 或 c(否定)
	[a-zA-Z] a到z或A到Z,两头的字母包括在内(范围)
	[a-d[m-p]] a到d或m到 p:(并集)
	[a-z&&[def]]	d、e 或 f
	[a-z&&[^bc]]	[ad-z]  a 到 z,除了 b 和 c)	
	[a-z&&[^m-p]]   [a-l[q-z]]  a 到 z,而非 m 到 p

    预定义字符

	.	任何字符
	\d	数字:[0-9]
	\D	非数字: [^0-9]
	\s	空白字符:[ \t\n\x0B\f\r]
	\S	非空白字符:[^\s]
	\w	单词字符:[a-zA-Z_0-9]
	\W	非单词字符:[^\w]	

    数量词字符

	X? 	X,一次或零次
	X* 	X,零次或多次
	X+ 	X,一次或多次
	X{n} 	X,恰好 n 次
	X{n,} X,至少 n 次
	X{n,m} 	X,至少 n 次,但是不超过 m 次

正则表达式的使用

    验证纯数字

	String regex = "\\d+";//正则表达式,用于验证纯数字
	String str1 = "1483033";//纯数字字符串
	String str2 = "628vd13";//数字字母交替
	String str3 = "38hdu@.,%";//数字、字母、特殊符号
	
	System.out.println(str1.matches(regex));//true
	System.out.println(str2.matches(regex));//false
	System.out.println(str3.matches(regex));//false

    验证纯字母字符串

	String regex = "[a-zA-Z]+";//语法解释:小写字母a-z、大写字母A-Z,一次或多次
	String str1 = "ghdjjdsv";//小写字符串
	String str2 = "GSDejjf";//大小写字符串
	String str3 = "AGFIh824";//大小写,数字
	String str4 = "6395.,*&%";//特殊字符
	
	System.out.println(str1.matches(regex));
	System.out.println(str2.matches(regex));
	System.out.println(str3.matches(regex));
	System.out.println(str4.matches(regex));

    验证数字文本交替

	String regex = "\\w+";//语法解释:\w,表示字符【数字、字母、下划线】一次或多次
	String str1 = "abcd547e_fg";
	String str2 = "63930>*034";
	String str3 = "abcdef";
	
	System.out.println(str1.matches(regex));//true
	System.out.println(str2.matches(regex));//false
	System.out.println(str3.matches(regex));//true

    去掉字符串中的数字

	String regex = "[0-9]+";//语法解释:数字字符,一次或多次
	String str1 = "ab243cd547e_fg";
	String str2 = str1.replaceAll(regex, "");
	
	System.out.println(str2);//abcde_fg

    应用 1.验证手机号

	String regex = "(\\+86)?1[1-8][0-9]{9}";//语法解释:数字字符,一次或多次
	String str1 = "+8610546993529";
	String str2 = "13512453698";
	String str3 = "+8613512453698";
	String str4 = "1332489666";
	
	System.out.println(str1.matches(regex));//false
	System.out.println(str2.matches(regex));//true
	System.out.println(str3.matches(regex));//true
	System.out.println(str4.matches(regex));//false

    应用 2.简单的验证邮箱

	String regex = "\\w+@\\w+(.[a-zA-Z]+)+";
	String str1 = "4842fhje@jd.cc.540";
	String str2 = "468004@qq.com";
	String str3 = "46557489bfj@sina.com.cn";
	
	System.out.println(str1.matches(regex));//false
	System.out.println(str2.matches(regex));//true
	System.out.println(str3.matches(regex));//true
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值