正则表达式

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)

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

相关推荐
决战软件之巅2 天前
Python 正则表达式
正则表达式
小浪学编程2 天前
C#学习13——正则表达式
学习·正则表达式
yuanyxh3 天前
《精通正则表达式》精华摘要
前端·javascript·正则表达式
red润4 天前
被转义字符麻痹的一天:理解转义字符串
前端·javascript·正则表达式
叶 落7 天前
[Java 基础]正则表达式
java·正则表达式·java 基础
fs哆哆9 天前
在VB.net中,用正则表达式方法清除干扰符号方法
开发语言·正则表达式·c#·.net
奔跑吧邓邓子10 天前
正则表达式:开启文本处理的魔法之门
正则表达式·文本处理·高效应用
相知-.11 天前
shell正则表达式
linux·运维·正则表达式
面朝大海,春不暖,花不开12 天前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式
前端小白从0开始12 天前
关于前端常用的部分公共方法(二)
前端·vue.js·正则表达式·typescript·html5·公共方法