文档章节

正则表达式

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

精选30+云产品,助力企业轻松上云!>>>

概念

正则表达式(英语: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
博文 21
码字总数 19804
作品 0
贵阳
其他
私信 提问
加载中
请先登录后再评论。

暂无文章

唐山5.1级地震 百度人工智能技术帮上忙:成都减灾所提前30秒让北京、天津市民收到预警

本文作者:y****n 7月12日6时38分在河北唐山市古冶区发生5.1级地震,成都高新减灾研究所与应急管理部门联合建成的大陆地震预警网成功预警该地震,给唐山市提前3秒预警,给天津市提前33秒预警...

百度开发者中心
昨天
30
0
如何使用PHP发送POST请求? - How do I send a POST request with PHP?

问题: Actually I want to read the contents that come after the search query, when it is done. 实际上,我想阅读搜索查询之后的内容,完成之后。 The problem is that the URL only a......

javail
56分钟前
14
0
如何从Java读取文件夹中的所有文件? - How to read all files in a folder from Java?

问题: 如何通过Java读取文件夹中的所有文件? 解决方案: 参考一: https://stackoom.com/question/7jt2/如何从Java读取文件夹中的所有文件 参考二: https://oldbug.net/q/7jt2/How-to-rea...

富含淀粉
今天
25
0
主机“ xxx.xx.xxx.xxx”不允许连接到该MySQL服务器

问题: This should be dead simple, but I cannot get it to work for the life of me. 这本来应该很简单,但是我无法让它在我的一生中发挥作用。 I'm just trying to connect remotely to......

技术盛宴
今天
18
0
OSChina 周二乱弹 —— 附近居民接连失踪,你们有什么头绪吗

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《伤离别(原版)》- 黄霑 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :睡...

小小编辑
今天
46
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部