JavaApi高级编程(三)正则表达式的运用

2022-11-18 20:35:07 浏览数 (1)

目录

一、正则表达式的概念

二、正则表达式的基本书写符号

1、基本书写符号:

2、常用限定符:限定符将可选数量的数据添加到正则表达式

3、匹配字符集:

4、分组构造:

三:常用案例


一、正则表达式的概念

1、什么是正则表达式:正则表达式是由普通字符(如英文字母)以及特殊字符(也成为元字符)组成的文字模式。该模式对文本查找时需要匹配的一个或多个字符串描述,给出一个匹配模板。

2、正则表达式的优点:正则表达式可以大大简化文本识别工作,现已超出了某种语言或某个系统的局限,成为被人们广为使用的工具。

二、正则表达式的基本书写符号

1、基本书写符号:

代码语言:javascript复制
public class Test1 {
	public static void main(String[] args) {
        //1、符号[]
		//只能是6位数字
		String s = "132a23";
		// 定义正则表达式
		String reg = "[0-9]{6}";
		// 验证表达式
		System.out.println(s.matches(reg));

        //2、[^ ]
        //电话号码:11位-1
		s = "12528023850";
		reg = "1[^012]\d{9}";
		System.out.println(s.matches(reg));

        //3、|
        //验证一年的12个月:
		String s = "12";
		String a = "[0-9]|1[0-2]";
		System.out.println(s.matches(a));
        
        
        //4、()
        //邮箱:837786260 @ qq . com|cn
		s = "837786260@ww.com";
		reg = "[0-9a-zA-Z]{5,15}@(qq|126|163).(com|cn)";
		System.out.println(s.matches(reg));

        //5、-
        //最少8位的字母
		s = "1wertyuil";
		reg = "[a-zA-Z]{8,}";
		System.out.println(s.matches(reg));
    }
}

2、常用限定符:限定符将可选数量的数据添加到正则表达式

代码语言:javascript复制
public class Test {
	public static void main(String[] args) {   
        //1、*
        //只能输入数字
        String s = "3";
		String a = "[0-9]*";
		System.out.println(s.matches(a));

        //2、 
        //只能输入由26个英文字母组成的字符串:
		String s = "zxcvbn";
		String a = "[a-zA-Z] ";
		System.out.println(s.matches(a));

        //3、{n}
        //只能输入n位的数字:
		String s = "323455";
		String a = "[0-9]{6}";
		System.out.println(s.matches(a));

        //4、{n,}
        //只能输入至少n位的数字:
		String s = "23456";
		String a = "[0-9]{3,}";
		System.out.println(s.matches(a));

        //5、{n,m}
        //只能输入n~m位的数字:
		String s = "234567";
		String a = "[0-9]{3,6}";
		System.out.println(s.matches(a));

        //6、$
        //整数或者小数:
		String s = "1.1234567";
		String reg = "^[0-9]*[1-9][0-9]*$|[0-9]{1,999999999}.[0-9]{1,9999999999999}";
		System.out.println(s.matches(reg));
        
        }
}

3、匹配字符集:

含义:匹配字符集是预定义的用于正则表达式中的符号集。如果字符串与字符集中的任何一个字符相匹配,它就会找到这个匹配项。

代码语言:javascript复制
 public class Test {
	public static void main(String[] args) {
        //1、d
        //验证电话号码:
		String s = "18673507143";
		String a = "1[^02]\d{9}";
		System.out.println(s.matches(a));

4、分组构造:

三:常用案例

代码语言:javascript复制
//只能输入数字                
[0-9]*
//只能输入n位的数字
d{n}
//只能输入至少n位的数字
d{n,}
//只能输入n~m位的数字
d{n,m}
//只能输入0和非0开头的数字
(0|[1-9][0-9]*)
//只能输入有两位小数的正实数
[0-9] (.[0-9]{2})?
//只能输入有1~3位小数的正实数
[0-9] (\.[0-9]{1,3})?
//只能输入非0的正整数
 ?[1-9][0-9]*
//只能输入非0的负整数
-[1-9][0-9]*
//只能输入长度为3的字符
.{3}
//只能输入由26个英文字母组成的字符串
[a-zA-Z] 
//只能输入由26个大写英文字母组成的字符串
[A-Z] 
//只能输入由26个小写英文字母组成的字符串
[a-z] 
//只能输入由数字和26个英文字母组成的字符串
[a-zA-Z0-9] 
//只能输入由数字和26个英文字母或者下划线组成的字符串
w 
//整数
 “ ^-?d $” 
//英数字加下划线串:
“^w $” 
//E-mail地址
“^[w-] (.[w-] )*@[w-] (.[w-] ) $” 
//验证网站URL
“^[a-zA-Z] ://(w (-w )*)(.(w (-w )*))*(?s*)?$” 

今天的精髓就分享到这里,希望对其他程序员有帮助!!!

0 人点赞