文档章节

正则表达式

代号997
 代号997
发布于 2017/09/02 01:10
字数 811
阅读 19
收藏 0

概念

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

© 著作权归作者所有

共有 人打赏支持
代号997
粉丝 6
博文 12
码字总数 12583
作品 0
贵阳
其他
私信 提问

暂无文章

金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?

根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术...

问题终结者
36分钟前
2
0
Kubernetes Client-go Informer 源码分析

几乎所有的Controller manager 和CRD Controller 都会使用Client-go 的Informer 函数,这样通过Watch 或者Get List 可以获取对应的Object,下面我们从源码分析角度来看一下Client go Informe...

阿里云官方博客
今天
4
0
传统IDC部署网站(三)

11. 重置密码 密钥和密码都支持远程登陆, 二选一 两个都可以登陆, 密钥相对于密码来说,相对安全一点 本地登陆无法是用密钥 修改密码 root 用户 passwd root 修改普通用户 passwd usernam...

miko0089
今天
6
0
bash特性

1.支持别名 alias 2.命令替换 $(COMMANS) 或者 `COMMAND` 3. bash支持的引号: `` :命令替换 "":弱引用,可以实现变量替换 '':强引用,不实现变量替换 4.文件名通配 globbing:(man 7 glo...

忙碌的小蜜蜂
今天
3
0
以语音评测的PC端demo代码为例,讲解口语评测如何实现

本文由云+社区发表 作者:腾讯智慧教育 概述 腾讯云智聆口语评测(英文版)(Smart Oral Evaluation-English,SOE-E)是腾讯云推出的语音评测产品,是基于英语口语类教育培训场景和腾讯云的语...

腾讯云加社区
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部