正则表达式练习

正则表达式基本概念:

元字符:

元字符 描述
. 匹配任意单个字符除了换行符
[ ] 匹配中括号里面的字符集
[^] 匹配中括号里面字符集的取反
* 匹配0个或多个*之前的符号
+ 匹配1个或多个+之前的符号
匹配0个或1个?之前的符号
{n,m} 匹配前面的字符,字符集或者捕获组n到m次
(xyz) (xyz)完全相等的字符串
| 或运算符,匹配前面或者后面的字符
|转移字符,用于保留元字符
^ 从头开始匹配
$ 从末端开始匹配

简写字符集

简写 描述
\w 匹配所有字母数字和下划线
\W 匹配所有非字母数字下划线
\d 匹配所有数字
\D 匹配所有非数字
\s 匹配空格
\S 匹配非空格
\f 匹配换页符
\n 匹配换行符
\r 匹配回车
\t 匹配制表符
\v 匹配垂直制表符
\p 匹配回车换行

零宽度断言

先行断言和后发断言都属于非捕获组,仅仅作为一个约束条件

符号 描述
?= 前行断言,约束前面匹配到的字符
?! 否定前行断言,排除约束前面匹配到的字符
?<= 后发断言,约束后面匹配到的字符
?<! 否定后发断言

常用的正则表达式:

校验数字

  • 数字:^[0-9]*$
  • n位的数字:^\d{n}$
  • 至少n位的数字:^\d{n,}$
  • m-n位的数字:^\d{m,n}$
  • 0和非0开头的数字:^(0|[1-9][0-9])$
  • 非0开头的最多带两位小数的数字:^[1-9][0-9]*(\.[0-9]{1,2})?$
  • 带1-2位小数的正数或者负数:^(|-)(0|[1-9][0-9]*)(\.[0-9]{1,2})$
  • 正数、负数和小数:^\-?\d+(\.\d+)?$
  • 有两位小数的正实数:^\d+(\.\d{2})?$
  • 非0的正整数:^[1-9][0-9]*$
  • 非负整数:^\d+$
  • 非正整数:^-[1-9]\d+|0)$
  • 正浮点数:

校验字符

特定需求

相关推荐
0和1的舞者2 小时前
网络通信的奥秘:HTTP详解 (七)
服务器·网络·网络协议·http·okhttp·软件工程·1024程序员节
liu****5 小时前
12.线程(二)
linux·开发语言·c++·1024程序员节
小苏兮12 小时前
【把Linux“聊”明白】编译器gcc/g++与调试器gdb/cgdb:从编译原理到高效调试
java·linux·运维·学习·1024程序员节
unable code13 小时前
攻防世界-Misc-掀桌子
网络安全·ctf·misc·1024程序员节
被AI抢饭碗的人1 天前
linux:io基础
1024程序员节
GIS数据转换器1 天前
2025无人机在电力交通中的应用实践
运维·人工智能·物联网·安全·无人机·1024程序员节
TDengine (老段)2 天前
TDengine 数学函数 CRC32 用户手册
java·大数据·数据库·sql·时序数据库·tdengine·1024程序员节
草莓熊Lotso2 天前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
-孤存-2 天前
深入浅出:TCP/UDP协议核心原理
网络·网络协议·tcp/ip·1024程序员节
百锦再2 天前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节