正则表达式

1、 基本匹配

正则表达式其实就是在执行搜索时的格式,由字母数字和字符组成

2、 元字符
元字符 描述
. 句号匹配任意单个字符除了换行符。
[ ] 字符种类。匹配方括号内的任意字符。方括号内的 . 就是 .
[^ ] 否定的字符种类。匹配除了方括号里的任意字符
* 匹配>=0个重复的在*号之前的字符。
+ 匹配>=1个重复的+号前的字符。
? 标记?之前的字符为可选.
{n,m} 匹配num个大括号之前的字符或字符集 (n <= num <= m). {n,}表示个数大于等于n ;{n}表示固定n个
(xyz) 字符集,匹配与 xyz 完全相等的字符串.
| 或运算符,匹配符号前或后的字符.
\ 转义字符,用于匹配一些保留的字符 `[ ] ( ) { } . * + ? ^ $ \
^ 指定匹配的开头字符为其后的字符
$ 指定匹配的末端字符为其前的字符
3、 简写字符集
简写 描述
. 除换行符外的所有字符
\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 行终止符
4、 零宽度断言

零宽度断言如下:

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

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

标志 描述
i 忽略大小写。
g 全局搜索。不仅仅返回第一个匹配的,而是返回全部
m 多行修饰符:锚点元字符 ^ $ 工作范围在每行的起始。
6、 贪婪匹配与惰性匹配(Greedy vs lazy matching)

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

相关推荐
吴声子夜歌14 小时前
JavaScript——字符串和正则表达式
开发语言·javascript·正则表达式
曾阿伦14 小时前
Python 正则表达式备忘录:判断与提取核心用法
python·正则表达式
小张贼嚣张14 小时前
SQL 正则表达式详解:语法、函数与实战案例(MySQL/Oracle通用)
mysql·oracle·正则表达式
Zzzz_my1 天前
正则表达式(RE)
pytorch·python·正则表达式
yhole2 天前
SQL中的REGEXP正则表达式使用指南
数据库·sql·正则表达式
ybdesire4 天前
ReDoS(正则表达式拒绝服务攻击)理解与实测
正则表达式·漏洞
weixin_433179334 天前
python - 正则表达式Regex
python·正则表达式
wayz116 天前
正则表达式:从入门到精通
java·python·正则表达式·编辑器
梨落秋霜6 天前
Python入门篇【正则表达式】
python·mysql·正则表达式
吾诺7 天前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式