正则表达式

概念

正则表达式(英语: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) //将符合规则的字符串内容,全部替换为新字符串

转载于:https://my.oschina.net/u/3470937/blog/1527796

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值