正则表达式
正则表达式
米斯特粥 发表于3个月前
正则表达式
  • 发表于 3个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

概念

正则表达式(英语:Regular Expression,在代码中常简写为regex)。

正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

正则表达式语法规则

                  * a: 字符

                          * x  代表的是字符x

                          * \\ 代表的是反斜线字符'\'

                          * \t 代表的是制表符

                          * \n 代表的是换行符

                          * \r 代表的是回车符

                  * b: 字符类

                          * [abc]    a、b 或 c(简单类)

                          * [^abc]   任何字符,除了 a、b 或 c(否定)

                          * [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

                          * [0-9]    0到9的字符都包括

                          * [a-zA-Z_0-9] 代表的字母或者数字或者下划线(即单词字符)

                  * c: 预定义字符类

                          * . 任何字符。

                          * \d 数字:[0-9]

                          * \w 单词字符:[a-zA-Z_0-9]

                  * d: 边界匹配器

                          * ^  代表的是行的开头

                          * $  代表的是行的结尾

                          * \b 代表的是单词边界

                  * e: 数量词

                          * X?     X,一次或一次也没有

                          * X*     X,零次或多次

                          * X+     X,一次或多次

                          * X{n}   X,恰好 n 次

                          * X{n,}  X,至少 n 次

                          * X{n,m} X,至少 n 次,但是不超过 m 次

例子说明

    规则:"[0-9]{6,12}"

        该规则需要匹配的内容是:长度为6位到12位的数字。

    规则:"1[34578][0-9]{9}"

        该规则需要匹配的内容是:11位的手机号码,第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字

    规则:"a*b"

        该规则需要匹配的内容是:在多个a或零个a后面有个b;b必须为最后一个字符。

 

在Java中的字符串类中涉及正则表达式的常用方法

  public boolean matches(String regex) //判断字符串是否匹配给定的规则

  举例:校验qq号码.

      1: 要求必须是5-15位数字

      2: 0不能开头

  代码例子:

      String qq = "604154942";

      String regex = "[1-9][0-9]{4,14}";

      boolean flag2 = qq.matches(regex);

  public String[] split(String regex)   //根据给定正则表达式的匹配规则,拆分此字符串

  举例:分割出字符串中的的数字

  代码例子:

  String s = "18-22-40-65";

      String regex = "-";

      String[] result = s.split(regex);

  代码例子:

      String s = "18 22 40 65";

      String regex = " ";

      String[] result = s.split(regex);

  public String replaceAll(String regex,String replacement)    //将符合规则的字符串内容,全部替换为新字符串

  举例:把文字中的数字替换成*

  代码例子:

      String s = "Hello12345World6789012";

      String regex = "[0-9]";

      String result = s.replaceAll(regex, "*");

总结

正则表达式:用来定义匹配规则,匹配一系列符合某个句法规则的字符串。

正则表达式的匹配规则

请参见 正则表达式的匹配规则

正则表达式的常用方法:

public boolean matches(String regex) //判断字符串是否匹配给定的规则

public String[] split(String regex)   //根据给定正则表达式的匹配规则,拆分此字符串

public String replaceAll(String regex,String replacement) //将符合规则的字符串内容,全部替换为新字符串

标签: 正则表达式
共有 人打赏支持
粉丝 6
博文 11
码字总数 12097
×
米斯特粥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: