正则表达式

是指定一组与之匹配的字符串,

限定符号

a* a出现0或者多次

a+ a出现1次或者多次

a? a出现0次或者1次

a{2,5} 出现在2到5次之间

或运算法

(cat|dog) 匹配 cat或者dog

字符类

abz\]+ 表示匹配的字符只能是中括号中的字母 如果使用了 \^则为取反符号 **元字符、** /d 代表数字字符 /w代表英文字符数字加上下划线 /s代表tab和换行符 其中/加大写的DWS则表示取反符号 .表示任意字符 不包括换行符号 \^a 匹配行首的 a$只匹配行尾 **正向先行断言** 例如正则表达式 `(T|t)he(?=\sfat)`,表示:匹配大写字母 `T` 或小写字母 `t`,后面跟字母 `h`,后跟字母 `e`。 在括号中,我们定义了正向先行断言,它会引导正则表达式引擎匹配后面跟着 `fat` 的 `The` 或 `the`。 ``` "(T|t)he(?=\sfat)" => The fat cat sat on the mat. ``` **负向先行断言** 当我们需要指定第一部分表达式的后面不跟随某一内容时,使用负向先行断言。负向先行断言的定义跟我们定义的正向先行断言一样, 唯一的区别在于我们使用否定符号 `!` 而不是等号 `=`,例如 `(?!...)`。 我们来看看下面的正则表达式 `(T|t)he(?!\sfat)`,表示:从输入字符串中获取全部 `The` 或者 `the` 且不匹配 `fat` 前面加上一个空格字符。 ``` "(T|t)he(?!\sfat)" => The fat cat sat on the mat. ``` #### 正向后行断言 正向后行断言用于获取跟随在特定模式之后的所有匹配内容。正向后行断言表示为 `(?<=...)`。例如正则表达式 `(?<=(T|t)he\s)(fat|mat)`,表示:从输入字符串中获取在单词 `The` 或 `the` 之后的所有 `fat` 和 `mat` 单词。 ``` "(?<=(T|t)he\s)(fat|mat)" => The fat cat sat on the mat. ``` #### 负向后行断言 负向后行断言是用于获取不跟随在特定模式之后的所有匹配的内容。负向后行断言表示为 `(? The cat sat on cat. ``` **贪婪/懒惰匹配** \<.+\>默认匹配任意字符 \<.+?\> 懒惰匹配任意字符 |------|--------| | ?= | 正向先行断言 | | ?! | 负向先行断言 | | ?\<= | 正向后行断言 | | ?\

相关推荐
一枚前端小能手3 天前
正则~~~来看这里
前端·正则表达式
我真不会起名字啊5 天前
正则表达式
正则表达式
钢铁男儿9 天前
Python 正则表达式(正则表达式和Python 语言)
python·mysql·正则表达式
钢铁男儿9 天前
Python 正则表达式实战:解析系统登录与进程信息
开发语言·python·正则表达式
拾心219 天前
【运维进阶】Linux 正则表达式
linux·运维·正则表达式
莲动渔舟9 天前
第4.3节:awk正则表达式详解-特殊字符
正则表达式·编程语言·awk
G_H_S_3_9 天前
【网络运维】Linux:正则表达式
linux·运维·网络·正则表达式
yuxb739 天前
Linux 文本处理与 Shell 编程笔记:正则表达式、sed、awk 与变量脚本
linux·笔记·正则表达式
烟锁池塘柳010 天前
【R语言】R 语言中 gsub 与正则表达式详解(含 POSIX 与 Perl 风格实例)
正则表达式·r语言·perl
郝学胜-神的一滴13 天前
基于C++的词法分析器:使用正则表达式的实现
开发语言·c++·程序人生·正则表达式·stl