正则表达式的字符,定位字符和重复字符
正则表达式语法表示的字符类 | ||
字符类 | 匹配的字符 | 示例 |
\d | 从0~9的数字 | \d\d可以匹配72,但不能匹配7a或者a7 |
\D | 非数字的字符 | \D\D\D可匹配a%c,但不能匹配123 |
\w | 下划线和单词字符 | \w\w\w可以匹配a2_,但不能匹配x&a |
\W | 非单词字符和非下划线 | \W\W可以匹配&^,但不能匹配a1 |
\s | 空白符,包括了制表符,换行符,回车符,换页符和垂直制表符 | |
\S | 非空白符 | |
. | 任意字符 | |
[...] | 括号内的任意字符 |
[abc]匹配单个字符a,b或c,但不匹配其他字符 [a-z]匹配a~z的任意字符 |
[^...] | 非括号内的任意字符 |
[^abc]匹配a,b,c出外的任意字符 [a-z]匹配非a~z的任意字符,但匹配大字字母 |
定位字符 | ||
定位字符 | 描述 | |
^ |
其后的模式必须在字符串的开始处,如果是一个多行字符串,应位于任意一行的开始。对于多行文本,需要设定multiline标志 | |
$ | 其前面的模式必须在字符串的末尾处,如果是一个多行字符串,应该在任意一行的末尾 | |
\A | 前面的模式必须在字符串的开始处;多行标志被忽略 | |
\z | 前面的模式必须在字符串的末尾处;多行标志被忽略 | |
\Z | 前面的模式必须在字符串的末尾;或位于换行符前 | |
\b | 匹配一个单词边界,是指上是单词字符和非单词字符间的点。单词字符是[a-zA-Z0-9]中的任意字符。位于一个单词的开始 | |
\B | 匹配一个非但此边界的位置,不再一个单词的开始 | |
基本的重复字符 | ||
重复字符 | 含意 | 示例 |
{n} | 匹配前面的字符n次 | x{2}匹配xx,但是不匹配x,或xxx |
{n,} | 匹配前面的字符n次或更多 | x{2,}匹配xx或xxx及更多的x, |
{n,m} | 匹配前面的字符最少n次,最多m次 | x{2,4}匹配xx,xxx,xxxx但是不匹配x,或xxxxx |
? | 匹配前面的字符0次或1次 | x?匹配x或空 |
+ | 匹配前面的字符1次或更多 | x+匹配x或等多的x |
* | 匹配前面的字符0次或更多 | x*匹配空或更多x |
{n,m} |
贪婪
\d*\d
懒惰
\d*?\d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现