正则表达式

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

限定符号

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. ``` **贪婪/懒惰匹配** \<.+\>默认匹配任意字符 \<.+?\> 懒惰匹配任意字符 |------|--------| | ?= | 正向先行断言 | | ?! | 负向先行断言 | | ?\<= | 正向后行断言 | | ?\

相关推荐
我材不敲代码6 小时前
Python 正则表达式进阶实战:从文本清洗到复杂信息提取
c++·python·正则表达式
水木流年追梦1 天前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
水木流年追梦2 天前
大模型入门-RL基础
开发语言·python·算法·leetcode·正则表达式
IT大白鼠2 天前
2019年Cloudflare全球宕机事件技术分析:正则表达式回溯失控与互联网基础设施脆弱性研究
运维·正则表达式·去中心化
XMYX-04 天前
33 - Go 文本模板 template:从入门到原理深挖
golang·正则表达式
XMYX-05 天前
32 - Go 正则表达式:从匹配字符串到理解 RE2 引擎
golang·正则表达式
程序员榴莲5 天前
Python 正则表达式入门:从匹配手机号到提取文本内容
python·正则表达式
红茶要加冰7 天前
七、正则表达式
linux·运维·正则表达式·shell
Pocker_Spades_A7 天前
Python快速入门专业版(五十八)——正则表达式(re):爬虫文本提取利器(从语法到实战)
爬虫·python·正则表达式
红茶要加冰7 天前
九、文本处理三剑客——sed
linux·运维·服务器·正则表达式·shell