正则表达式(regular expression)是一种表达字符串模式(文本结构)的体系,用于匹配符合规则(regular) 的字符串

通配符 wildcard 的差别见通配符 vs 正则表达式

正则表达式通过限定符、元字符、字符组、字符类、或运算符

限定符

限定符用于对其前的一个字符进行出现次数的限定

  • *: 0 次或多次
  • : 0 次或 1 次
    • 在本机器的 wsl2 中,基本正则表达式不支持 ?,需要使用 egrep
  • +: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 的参与下,我大概率根本看不懂自己写的正则表达式,出现错误将无法修正。 初级阶段请减少使用并勤加练习