正则表达式5分钟全解析

这篇具有很好参考价值的文章主要介绍了正则表达式5分钟全解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

正则表达式在编程中很重要,它能够通过特定的语法规则来对字符串进行精确的模式匹配和替换操作。相比传统的字符串处理方式,正则表达式能够快速高效地完成繁琐的文本处理任务,例如数据提取、格式化、过滤、搜索等等。

基本匹配

hello => hello world

正则表达式是大小写敏感的

Hello => hello Hello word

元字符

元字符在正则表达式不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思

元字符例子默认使用了全局匹配

元字符 描述
. 句号匹配任意单个字符除了换行符。
[ ] 字符种类。匹配方括号内的任意字符。
[^ ] 否定的字符种类。匹配除了方括号里的任意字符
* 匹配>=0个重复的在*号之前的字符。
+ 匹配>=1个重复的+号前的字符。
? 标记?之前的字符为可选.
{n,m} 匹配num个大括号之前的字符或字符集 (n <= num <= m).
(xyz) 字符集,匹配与 xyz 完全相等的字符串.
| 或运算符,匹配符号前或后的字符.
\ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
^ 从开始行开始匹配.
$ 从末端开始匹配.
点运算符
.匹配任意单个字符,但不匹配换行符

.th => I love telling the truth.

[]字符集

在方括号中使用连字符来指定字符集的范围。 在方括号中的字符集不关心顺序。

[Tt]he => the The tthe thhe

方括号的句号就表示句号。 表达式 ar[.] 匹配 ar.字符串

[^]否定字符集,^ 表示一个字符串的开头,但它用在一个方括号的开头的时候,它表示这个字符集是否定的。

[^s]iu => siu giu ziu xiu Siu

重复次数
*号匹配 在*之前的字符出现大于等于0次。

s* => she her Show. SSggssgg

*字符和.字符搭配可以匹配所有的字符.*
*和匹配空格的符号 \s连用可以匹配多个以0或更多个空格开头

\s*cat => the fat** cat**

+号匹配+号之前的字符出现 >=1 次。

c.+t => the cat is fat

? 标记在符号前面的字符为可选,即出现 0 或 1 次.

c?at => the cat Cat

{}号在正则表达式中是一个量词

匹配至少两位0-9的数字,常用来限定一个或一组字符可以重复出现的次数。

[0-9]{2,} => 1 22 333 4444

匹配至少两位,最多3位的0-9数字

[0-9]{2,3} => 1 22 333 4444

匹配3位0-9数字

[0-9]{3} => 1 22 333 4444

(...) 特征标群

特征标群是一组写在 (...) 中的子模式。(...) 中包含的内容将会被看成一个整体,和数学中小括号( )的作用相同。

(ab)* => ab abb aa bb

| 或运算符

或运算符就表示或,用作判断条件

dog|cat => dog cat

在小括号中用字符|或

(a|b|c)ar => aar bar car dar tar

转码特殊字符

反斜线 \ 在表达式中用于转码紧跟其后的字符。用于指定 { } [ ] / \ + * . $ ^ | ? 这些特殊字符。如果想要匹配这些特殊字符则要在其前面加上反斜线 \

(f|c|m)at.? => The fat cat sat on the mat.

锚点

在正则表达式中,想要匹配指定开头或结尾的字符串就要使用到锚点。^ 指定开头,$ 指定结尾。

^ 用来检查匹配的字符串是否在所匹配字符串的开头。

^(c|C)at =>Cat is white cat

$号用来匹配字符是否是最后一个。

$(c|C)at =>Cat is white cat

简写字符集

简写 描述
. 除换行符外的所有字符
\w 匹配所有字母数字,等同于 [a-zA-Z0-9_]
\W 匹配所有非字母数字,即符号,等同于: [^\w]
\d 匹配数字: [0-9]
\D 匹配非数字: [^\d]
\s 匹配所有空格字符,等同于: [\t\n\f\r\p{Z}]
\S 匹配所有非空格字符: [^\s]
\f 匹配一个换页符
\n 匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符
\v 匹配一个垂直制表符
\p 匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符

零宽度断言(前后预查)

先行断言和后发断言(合称 lookaround)都属于非捕获组(用于匹配模式,但不包括在匹配列表中)。当我们需要一个模式的前面或后面有另一个特定的模式时,就可以使用它们。
说人话 就是和之前的^和$符作用一样,都是用来寻找一个位置,左侧或右侧是否为指定表达式的一个位置

?=... 正先行断言

筛选条件为其后跟随着断言中定义的格式。

cat(?=\sis) => the cat is white cat

####?!... 负先行断言
筛选条件为其后不跟随着断言中定义的格式。

cat(?!\sis) => the cat is white cat

?<= ... 正后发断言

筛选条件为其前跟随着断言中定义的格式。

(?<=the\s)cat => the cat is white cat

?<!... 负后发断言

筛选条件为其前不跟随着断言中定义的格式。

(?<!the\s)cat => the cat is white cat

符号 描述
?= 正先行断言-存在
?! 负先行断言-排除
?<= 正后发断言-存在
?<! 负后发断言-排除

标志

标志也叫模式修正符,因为它可以用来修改表达式的搜索结果。 这些标志可以任意的组合使用,它也是整个正则表达式的一部分。

忽略大小写

修饰语 i 用于忽略大小写。

cat => the cat is Cat
/cat/i => the cat is Cat

全局搜索

修饰符 g 常用于执行一个全局搜索匹配,即(不仅仅返回第一个匹配的,而是返回全部)。

/.(at)/g => cat sat fat mat

多行修饰符

多行修饰符 m 常用于执行一个多行匹配。

“/.at(.)?$/gm” => The cat

cat sat

on the mat.

标志 描述
i 忽略大小写。
g 全局搜索。
m 多行修饰符:锚点元字符 ^ $ 工作范围在每行的起始。

贪婪匹配与惰性匹配

正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串。我们可以使用 ? 将贪婪匹配模式转化为惰性匹配模式。

/(.*at)/ => The fat cat sat on the mat.

/(.*?at)/ => The fat cat sat on the mat.文章来源地址https://www.toymoban.com/news/detail-811036.html

文章到这里就结束了,更多作为自我学习,谢谢观看。
下篇文章更新正则表达式在前端中的运用

到了这里,关于正则表达式5分钟全解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python爬虫之正则表达式解析实战

    python爬虫之正则表达式解析实战

    先获取网址,URL:https://www.xiachufang.com/category/40076/ 定位想要爬取的内容 使用正则表达式爬取 导入模块 指定URL UA伪装(模拟浏览器) 发起请求,获取当前页面的数据内容,并使用通用爬虫爬取整个页面 编译正则表达式(提取想要的内容) 解析请求内容 指定图片存储路径 持

    2024年02月08日
    浏览(8)
  • Java之正则表达式的详细解析

    在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规则。它内部描述了一些规则,我们可以验证用户输入的字符串是否匹配这个规则。 先看一个不使用正则表

    2024年02月10日
    浏览(6)
  • 【23JavaScript 正则表达式】深入解析JavaScript正则表达式:基础概念、常用方法和实例详解,轻松掌握强大的文本模式匹配工具

    正则表达式是一种强大的文本模式匹配工具,用于在字符串中搜索和操作特定的文本模式。在JavaScript中,正则表达式提供了一种灵活的方式来处理字符串操作。 在JavaScript中,可以通过使用字面量表示法或RegExp对象来创建正则表达式。 字面量表示法 RegExp对象 JavaScript中的正则

    2024年02月08日
    浏览(10)
  • 正则表达式 vs. 字符串处理:解析优势与劣势

    正则表达式 vs. 字符串处理:解析优势与劣势

    1. 正则表达式起源与演变 正则表达式(Regular Expression)最早由美国数学家斯蒂芬·科尔内基(Stephen Kleene)于1956年提出,用于描述字符串的模式匹配规则。随后在计算机领域得到广泛应用,成为文本处理和匹配的重要工具。 正则可视化 | 一个覆盖广泛主题工具的高效在线平台

    2024年03月27日
    浏览(5)
  • 【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取

    【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取

    1 论文出处 会议:International Conference on Software Maintenance and Evolution(ICSME) 级别:CCF-B 时间:2022 2 背景 2.1 背景介绍   日志文件包括大量关于软件系统执行的信息,用于帮助处理不同的软件工程活动,生成的日志事件主要由两部分组成:日志头和日志消息。解析日志消息需

    2024年02月09日
    浏览(14)
  • 简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析

    简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析

    前端需要发送一个这样的请求,但出现404 首先解析请求的变化:  http://www.51xuecheng.cn/api/checkcode/pic 1.请求先打在nginx, www.51xuecheng.cn/api/checkcode/pic 部分匹配到了之后会转发给网关进行处理变成 localhost:63010/checkcode/pic  2.然后再转发到网关上,网关上的路由转发配置如下图。然

    2024年02月06日
    浏览(16)
  • 【正则表达式】正则表达式常见匹配模式

    模式 描述 w 匹配字母数字及下划线 W 匹配非字母数字下划线 s 匹配任意空白字符,等价于 [tnrf]. S 匹配任意非空字符 d 匹配任意数字,等价于 [0-9] D 匹配任意非数字 A 匹配字符串开始 Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 z 匹配字符串结

    2024年02月09日
    浏览(22)
  • 【SQL-正则】利用正则表达式进行过滤操作(常用正则表达式)

    1、由数字、26个英文字母或者下划线组成的字符串 2、非负整数(正整数 + 0 ) 3、正整数 4、非正整数(负整数 + 0) 5、负整数 6、整数 7、非负浮点数(正浮点数 + 0) 8、正浮点数 9、非正浮点数(负浮点数 + 0) 10、负浮点数 11、浮点数 12、由26个英文字母组成的字符串 13、

    2024年02月12日
    浏览(16)
  • Java 之正则表达式语法及常用正则表达式汇总

    Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(10)
  • Python正则表达式之学习正则表达式三步曲

            正则表达式描述了一种字符串匹配的模式,可以用来检查一个串的有无某子串,或者做子串匹配替换,取出子串等操作。也可以说正则表达式就是字符串的匹配规则,也可以理解为是一种模糊匹配,匹配满足正则条件的字符串。         1、数据验证(eg:表单验

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包