正则表达式(regular expression)是一种表达字符串模式(文本结构)的体系,用于匹配符合规则(regular) 的字符串
与通配符 wildcard 的差别见通配符 vs 正则表达式
正则表达式通过限定符、元字符、字符组、字符类、或运算符
限定符
限定符用于对其前的一个字符进行出现次数的限定
*: 0 次或多次?: 0 次或 1 次- 在本机器的 wsl2 中,基本正则表达式不支持
?,需要使用egrep
- 在本机器的 wsl2 中,基本正则表达式不支持
+:1 次或多次\{n,\m}:指定匹配次数,注意转义符
字符组
字符组可以将某字符串看组一个整体,弥补限定符只限制前一个字符的不足
():将括号中的字符划归为一组
字符类
字符类用于完全替代一类字符
[a-z]:小写字母[A-Z]:大写字母[0-9]:匹配数字[^]:脱字符
元字符
元字符用于完全替代一类字符
\d:decimal 数字,D为非数字w:单词,W为非单词s:空白符,S为非空白符
.:任意字符,除换行符^:行首$:行尾\:转义字符, 使得特殊元字符去异
Tips
部分元字符(
/d)与字符类([0-9])在使用上存在冗余,然而[0-9]更适合纯 ASCII 的生信数据,对新手也更加友好,请优先使用字符类
或运算符
|:在字符类中表示或运算[0|9]
Warning
在 AI 的参与下,我大概率根本看不懂自己写的正则表达式,出现错误将无法修正。 初级阶段请减少使用并勤加练习