主页 > IT业界  > 

(二十)正则表达式

(二十)正则表达式

目录

前言:

1.概述:

2.正则表达式体验:

3.正则表达式字符

4.正则表达式在字符串方法中的使用

5.代码演示:

6.正则表达式支持爬取信息

7.代码演示:


前言:

        正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

        许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala 、PHP、C# 、Java、C++ 、Objective-c、Perl 、Swift、VBScript 、Javascript、Ruby 以及Python等等。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

1.概述:

        正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性。

2.正则表达式体验:

需求:

        加入现在要求校验一个QQ号码是否正确,6位及20位之内,必须全部是数字。

/**正则表达式(regex) :可以用一些规定的字符来制定规则,并用来经检验数据格式的合法性 * */ public class regex_Demo1 {    public static void main(String[] args) {        //校验QQ号,必须全部是数字6-20位        System.out.println(checkQQ("251410401102"));        System.out.println(checkQQ("12841"));        System.out.println(checkQQ("13929jfuhfuc"));        System.out.println(checkQQ(null));        System.out.println("==============================");        System.out.println(checkQQ2("251410401102"));        System.out.println(checkQQ2("12841"));        System.out.println(checkQQ2("13929jfuhfuc"));        System.out.println(checkQQ2(null));   }    public static boolean checkQQ2(String qq){        //正则表达式        return qq != null && qq.matches("\\d{6,20}");//只能是数字   }    public static boolean checkQQ(String qq) {        //1、判断QQ号的长度是否满足要求        if (qq == null || qq.length()<6||qq.length()>20) {            return false;       }        //2、判断是否全部是数字,不是则返回false        for (int i = 0; i <qq.length() ; i++) {            char ch = qq.charAt(i);            //判断这个字符是否不是数字,不是数字直接返回false            if (ch<'0'||ch>'9'){                return false;           }       }        return false;   } } 3.正则表达式字符

3.1字符类(默认匹配一个字符)

 

3.2预定义的字符类(默认匹配一个字符)

 

3.3贪婪的量词(配合匹配多个字符)

 

3.4字符串对象提供了匹配正则表达式规则的API

 

 

4.正则表达式在字符串方法中的使用

 

5.代码演示: public class regex_Demo2 {    public static void main(String[] args) {        //1.分割        String name = "小路dhfadk蓉儿llvok武则天";        String[] arrs =name.split("\\w+");        for (int i = 0; i < arrs.length; i++) {            System.out.println(args[i]);       } ​        String arrs2 = name.replaceAll("\\w+"," ");        System.out.println(arrs2);   } } 6.正则表达式支持爬取信息

7.代码演示: import java.util.regex.Matcher; import java.util.regex.Pattern; ​ //正则表达式爬取信息 public class regex_Demo3 {    public static void main(String[] args) { ​    //定义内容    String rs = "黑马程序员JAVA,电话:020-123938,邮箱:2683857059@qq ,黑马程序员python,电话:18765832633,020100323 邮箱:1189231782@qq "            +"黑马程序员CSS,电话:400-100-3233,邮箱:39184185@.qq ";    //定义爬取规则    String regex="(\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2})| (1[3-9]\\d{9})" +            "|(0\\d{2,6}-?\\d{5,20})|(400-?\\d{3,9}-?\\d{3,9})";//爬取邮箱和手机号    //1、编译正则表达式成为一个匹配规则对象    Pattern pattern = Pattern pile(regex);    //2、通过匹配规则得到一个匹配数据内容的匹配器对象    Matcher matcher = pattern.matcher(rs);    //3、通过匹配器去内容中爬取信息    while(matcher.find()){        System.out.println(matcher.group());   }   } }
标签:

(二十)正则表达式由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“(二十)正则表达式