【正则表达式】入门

参考视频:10分钟快速掌握正则表达式_哔哩哔哩_bilibili

这个网站用来测试写的正则表达式效果:regex101: build, test, and debug regex

示例:

限定符

? 表示前一个字符可有可无

比如这里输入:de?

匹配结果可以得到d和de

* 前一个字符出现0到无穷次

这里输入:com*

得到comm,co

+ 前一个字符出现一次以上

这里输入:com+

得到comm,相比上一个示例*少了结果co

{} 指定出现次数范围

写单个数字指定前一个字符出现几次

逗号隔开两个数字,表示范围

还可以省略一个数字,如:

限定多个字符

给字符串加个括号当作一个字符即可。

| 运算符

字符类

[]内放字符,代表搜索的字符只能包含这几个字符

还可以扩大到范围。

前面加上^代表除了这块字符

元字符

\d代表数字字符,等于[0-9]

\w代表包括下划线的数字和任何单词字符

\s代表空白字符

\D代表非数字字符

\W代表非单词字符

\S代表非空白字符

.代表任意字符,但不包含换行符

^匹配行首,$匹配行尾,

贪婪与懒惰匹配

这里我们写入<.+>会贪心匹配到所有字符

但是我们只想要得到<>里的内容以便处理数据时删去,要怎么办呢?

加上问好即可把贪婪匹配转化为懒惰匹配,<.+?>

从原来尽可能多的匹配,到尽可能少的匹配。

实例

查找RGB

RGB是#开头的6位十六进制表达式

#[a-fA-F0-9]{6}

匹配#,十六进制,花括号指定位数

但是这里#fffffffff也被统计进去了,加上\b表示字符末尾的边界。#[a-fA-F0-9]{6}\b

相关推荐
Miqiuha2 分钟前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐1 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
加油,旭杏2 小时前
【中间件学习】fastCG介绍和使用
学习·nginx·fastcgi
limengshi1383922 小时前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信
GFCGUO3 小时前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
丝丝不是土豆丝4 小时前
学习 CSS 新的属性 conic-gradient 实现环形进度条
学习
S hh4 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习
wusam5 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
攸攸太上5 小时前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
Geek之路5 小时前
QT系统学习篇(1)
开发语言·qt·学习