首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >正则表达式的语法规则

正则表达式的语法规则

作者头像
Lcry
发布于 2022-11-29 12:27:07
发布于 2022-11-29 12:27:07
74700
代码可运行
举报
文章被收录于专栏:Lcry个人博客Lcry个人博客
运行总次数:0
代码可运行

正则表达式(英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
参照帮助文档,在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母。我们来学习语法规则。
正则表达式的语法规则:
字符:x
含义:代表的是字符x
例如:匹配规则为 "a",那么需要匹配的字符串内容就是 ”a”

字符:\\
含义:代表的是斜线字符'\' 
例如:匹配规则为"\\" ,那么需要匹配的字符串内容就是 ”\”

字符:\t
含义:制表符
例如:匹配规则为"\\t" ,那么对应的效果就是产生一个制表符的空间

字符:\n
含义:换行符
例如:匹配规则为"\\n",那么对应的效果就是换行,光标在原有位置的下一行

字符:\r
含义:回车符
例如:匹配规则为"\\r",那么对应的效果就是回车后的效果,光标来到下一行行首

字符类:[abc]
含义:代表的是字符a、b 或 c
例如:匹配规则为"[abc]",那么需要匹配的内容就是字符a,或者字符b,或字符c的一个

字符类:[^abc]
含义:代表的是除了 a、b 或 c以外的任何字符
例如:匹配规则为"[^abc]",那么需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符

字符类:[a-zA-Z]
含义:代表的是a 到 z 或 AZ,两头的字母包括在内
例如:匹配规则为"[a-zA-Z]",那么需要匹配的是一个大写或者小写字母

字符类:[0-9]
含义:代表的是 09数字,两头的数字包括在内
例如:匹配规则为"[0-9]",那么需要匹配的是一个数字

字符类:[a-zA-Z_0-9]
含义:代表的字母或者数字或者下划线(即单词字符)
例如:匹配规则为" [a-zA-Z_0-9] ",那么需要匹配的是一个字母或者是一个数字或一个下滑线

预定义字符类:.
含义:代表的是任何字符
例如:匹配规则为" . ",那么需要匹配的是一个任意字符。如果,就想使用 . 的话,使用匹配规则"\\."来实现
s
预定义字符类:\d
含义:代表的是 09数字,两头的数字包括在内,相当于[0-9]
例如:匹配规则为"\\d ",那么需要匹配的是一个数字

预定义字符类:\w
含义:代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]
例如:匹配规则为"\\w ",,那么需要匹配的是一个字母或者是一个数字或一个下滑线

边界匹配器:^
含义:代表的是行的开头
例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容从[abc]这个位置开始, 相当于左双引号

边界匹配器:$
含义:代表的是行的结尾
例如:匹配规则为^[abc][0-9]$ ,那么需要匹配的内容以[0-9]这个结束, 相当于右双引号

边界匹配器:\b
含义:代表的是单词边界
例如:匹配规则为"\\b[abc]\\b",那么代表的是字母a或b或c的左右两边需要的是非单词字符([a-zA-Z_0-9])
        String regex = ".*\\b[abc]\\b.*";
        String str = "abc a bbc";
        booleanflag = str.matches(regex);

数量词:X?
含义:代表的是X出现一次或一次也没有
例如:匹配规则为"a?",那么需要匹配的内容是一个字符a,或者一个a都没有

数量词:X*
含义:代表的是X出现零次或多次
例如:匹配规则为"a*",那么需要匹配的内容是多个字符a,或者一个a都没有

数量词:X+
含义:代表的是X出现一次或多次
例如:匹配规则为"a+",那么需要匹配的内容是多个字符a,或者一个a

数量词:X{n}
含义:代表的是X出现恰好 n 次
例如:匹配规则为"a{5}",那么需要匹配的内容是5个字符a

数量词:X{n,}
含义:代表的是X出现至少 n 次
例如:匹配规则为"a{5, }",那么需要匹配的内容是最少有5个字符a

数量词:X{n,m}
含义:代表的是X出现至少 n 次,但是不超过 m 次
例如:匹配规则为"a{5,8}",那么需要匹配的内容是有5个字符a 到 8个字符a之间

逻辑运算符:XY
含义:代表的是X后跟Y
例如:匹配规则为"ab",那么需要匹配的字符串内容就是 ”ab”

逻辑运算符:X|Y
含义:代表的是XY
例如:匹配规则为"a|b",那么需要匹配的字符串内容就是 ”a”或”b”

逻辑运算符:(X)
含义:代表的是()括号内的数据作为一组数据出现,(X)的方式称为正则表达式中的组
例如:匹配规则为"(hello)+",那么需要匹配的内容是组内数据要出现多次,如”hellohellohello”;或者组内数据出现一次,如”hello”。

例子:

 public boolean matches(String regex) //判断字符串是否匹配给定的规则 举例:校验qq号码.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1:要求必须是5-10位数字
2:0不能开头

代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    String qq = "604154942";
    String regex = "[1-9][0-9]{4,9}";
    booleanflag2 = qq.matches(regex);

举例:校验手机号码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1:要求为11位数字
2:第1位为1,第2位为34578中的一个,后面9位为09之间的任意数字。

代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    String phone = "18800022116";
    String regex = "1[34578][0-9]{9}";
    booleanflag = phone.matches(regex);

 public String[] split(String regex) //根据给定正则表达式的匹配规则,拆分此字符串 举例:分割出电话号码字符串中的的数字 代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String s = "18-22-40-65";
    String regex = "-";
    String[] result = s.split(regex);

代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    String s = "18 22 40 65";
    String regex = " ";
    String[] result = s.split(regex);

注意实现: 在定义正则表达式的匹配规则字符串的里面,想再次使用组中的内容,可通过\1来进行使用 例如:正则表达式的匹配规则为"(a) == \1"; 使用数据"a == a"进行匹配结果为true;使用数据"a == b"进行匹配结果为false。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
正则表达式模块re
正则表达式(Regular expressions,也叫 REs、 regexs 或 regex patterns)
chuan_____
2025/01/22
1460
Java中正则表达式分类及使用方法,分门别类,总结的很好
1、正则表达式是什么? 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用 : 比如注册邮箱 , 邮箱有用户名和密码 , 一般会对其限制长度 , 这个限制长度的事情就是正则表达式做的 2、案例演示 需求:校验 qq 号码 . 1: 要求必须是 5-15 位数字 2:0 不能开头 3: 必须都是数字 a: 非正则表达式实现 b: 正则表达式实现 网络配图 3、正则表达式分类学习: (1)、字符类演示 A: 字符类 [abc] a 、 b 或 c
企鹅号小编
2018/01/26
7600
Java正则表达式(一看就懂)
正则表达式:正确规则的表达式  通常用来检测字符串是否符合某规则、根据某规则切分字符串 或 替换符合规则的文本  例如:  检查校验字符串中的 QQ 号是否如何如下规则:   ①必须为 5~15 位数字   ②不能以 0 开头   若使用之前代码: 
陶然同学
2023/02/24
2.3K0
Java正则表达式(一看就懂)
正则表达式小结
正则表达式:正确规则的表达式 boolean matches(String regex) 当前字符串是否匹配给定的正则表达式 String replaceAll(String regex,String replacement) 使用 replacement 替换当前字符串中所有符号正则表达式的内容 String[] split(String regex) 根据给定的正则表达式拆分当前字符串 注意: .的正则写法必须为\. 正则表达式 规则 规则: x 含义:代表的是字符 x 规则: \\ 含义:代表的是斜线字符’\’ 规则: \t 含义:制表符 规则: \n 含义:换行符 规则: \r 含义:回车符 规则: [abc] 含义:代表的是字符 a、 b 或 c 规则: [^abc] 含义:代表的是除了 a、 b 或 c 以外的任何字符 规则:[a-zA-Z] 含义:代表的是 a 到 z 或 A 到 Z,两头的字母包括在内 规则:[0-9] 含义:代表的是 0 到 9 数字,两头的数字包括在内 规则:[a-zA-Z_0-9]含义:代表的字母或者数字或者下划线(即单词字符) 规则: . 含义:代表的是任何字符 规则: \d 含义:相当于[0-9]。代表的是 0 到 9 数字, 0 和 9 包括在内。 规则: \w 含义:相当于[a-zA-Z_0-9]。 代表的字母或者数字或者下划线
Maynor
2021/12/27
3320
一篇文章让你从此不再畏惧正则表达式
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
乱码三千
2021/07/29
1.1K0
一篇文章让你从此不再畏惧正则表达式
正则表达式的规则
正则表达式的规则 A:字符 x 字符 x。举例:'a'表示字符a \\ \ 两个反斜杠字符代表一个反斜杠字符 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [abc] a、b或 c(简单类) 例如:[38] 表示3或者8 [^abc] 任何字符,除了a、b或 c(否定) [a-zA-Z] a到z或
黑泽君
2018/10/12
5460
java正则表达式
正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍Java正则表达式的使用方法,包括语法、常用方法、示例等内容。
堕落飞鸟
2023/04/03
9040
正则表达式介绍与使用
正则表达式(Regular Expression)描述字符串结构模式的形式化表达方法,正则(Regex)表达式处理的对象的字符串或者抽象地说是一个对象序列(计算机体系的本质数据结构) 正则表达式是一种文本模式包括普通字符(例如a 到 z 之间的字母)和特殊字符(称为”元字符”),用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”;
全栈工程师修炼指南
2020/10/23
1.4K0
正则表达式介绍与使用
正则表达式(一)
练习写作是我们学习知识有效的一种方式,通过写作可以检验你对知识点的掌握,是一种对自己内心世界的推演,因此你也会得到一些结论。而这些结论正是你身体力行、复盘总结、升华提炼后的结果。你把文字写出来的时候,也许你会想,又或者会有告诉你,某本书上早写了这些。于是你可能会茫然,想着既然书上早就写了,那我折腾的意义在哪里?
stormwen
2019/08/05
6040
python进阶之正则表达式
  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
py3study
2020/01/20
5470
第三阶段-Java常见对象:【第七章 正则表达式】
(一) 正则表达式 (一) 正则表达式概述 (1) 简单概述 就是符合一定规则的字符串 (2) 常见规则 A:字符 x 字符 x。举例:'a'表示字符a \ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到z 或 A到Z,两头的字母包括在内(范围) [0-9]
BWH_Steven
2019/08/09
5030
Java中正则表达式
PS:更多其他符号,可参照 http://www.cnblogs.com/Mustr/p/6057159.html
会说话的丶猫
2021/03/09
3840
正则表达式快速入门
正则表达式(Regular Expression),又称规则表达式,在代码中常简写作 regex、regexp 或 RE。正则表达式通常用来检索、替换那些符合某个模式(规则)的文本。常用的程序设计语言都支持正则表达式,比如 C++11 也将正则表达式纳入标准,Perl、Python、PHP、Javascript、Ruby 等脚本语言都内置了强大的正则表达式处理引擎,Java、C#、Go、Delphi 等编译型语言都支持正则表达式。
恋喵大鲤鱼
2022/05/09
1.3K0
Java类库之正则表达式(重点)
但是现在一个简单的问题就出现了,这个验证应该算是不难的,但是面对这样一个不麻烦的验证,代码写了9行代码,如果是一些更为复杂的验证呢?那么对于整体操作就更加的麻烦了,现在有另外一种做法:
葆宁
2019/04/18
5620
Java类库之正则表达式(重点)
正则表达式教程:实例速查
正则表达式(regex 或 regexp)在文本信息提取方面是非常有用的工具,通过查询一个或多个特定搜索模式的匹配实现(例如,特定的ASCII或unicode字符序列)。
AI研习社
2018/10/24
1.9K0
爬虫必学知识之正则表达式上篇
这是日常学python的第12篇文章 在向网页进行了提交请求之类的之后,我们可以得到了网页的返回内容,里面自然而然会有我们想要的数据,但是html元素文本这么多,我们不可能一 一去找我们需要的数据,这时就需要用到正则表达式了,正则表达式是学爬虫必须学的内容,而且不止python可以用,java等其他语言都可以用,所以学了好处大大。 什么是正则表达式? 正则表达式就是一个特殊的字符序列,可以用于检测一个字符串是否与我们的所设定的字符串相匹配。功能有快速检索文本和快速替换一些文本的操作。 python里面有个处
sergiojune
2018/04/04
1.1K0
爬虫必学知识之正则表达式上篇
爬虫大佬,把他总结的正则表达式使用给我了!
正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,主流的正则引擎又分为3类:一、DFA,二、传统型NFA,三、POSIX NFA。
小傅哥
2021/04/12
4920
Java正则表达式
描述:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
全栈工程师修炼指南
2022/09/29
1.4K0
正则表达式
https://blog.csdn.net/CSDN___LYY/article/details/53104136
洋仔聊编程
2019/01/15
9800
第十六天 常用API-Date&DateFormat&Calender&System&Math&基本类型包装类&正则【悟空教程】
第十六天 常用API-Date&DateFormat&Calender&System&Math&基本类型包装类&简单正则表达式【悟空教程】
Java帮帮
2018/07/26
1.9K0
第十六天 常用API-Date&DateFormat&Calender&System&Math&基本类型包装类&正则【悟空教程】
相关推荐
正则表达式模块re
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档