正则表达式

简介

本文主要是shell正则表达式相关的笔记,正则表达式的分类有,

  • 基本的正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs)
  • 扩展的正则表达式(Extended Regular Expression 又叫Extended RegEx 简称EREs)
  • Perl的正则表达式(Perl Regular Expression 又叫Perl RegEx 简称PREs)

基本组成部分

正则表达式 示例 BREs EREs Python RegEx
\ 转义符,如a\.b匹配a.b \ \ \
^ 行首,如^tux匹配以tux开头的行 ^ ^ ^
\$ 行尾,如tux\$匹配以tux结尾的行 \$ \$ \$
. 匹配除换行符\n之外的任意单个字符 . . .
[] 匹配包含在[字符]之中的任意一个字符 [] [] []
[^] 匹配[^字符]之外的任意一个字符,如123[^45]不能匹配到1234或1235 [^] [^] [^]
[-] 匹配[]中指定范围内(递增)的任意一个字符,如[0-9]可以匹配0到9之间任意数 [-] [-] [-]
? 匹配之前的项至多1次,如colou?r可以匹配color或者colour 不支持 ? ?
+ 匹配之前的项至少1次,sa-6+匹配sa-6、sa-666 不支持 + +
* 匹配之前项0次或多次 * * *
{n} 匹配之前项n次 不支持 {n} {n}
{n,} 之前项至少匹配n次 不支持 {n,} {n,}
{n,m} 之前项至少匹配n次,最多匹配m次,n<=m 不支持 {n,m} {n,m}
() 创建一个匹配子串,如ma(tri)?匹配max或maxtrix 不支持 () ()

元字符

正则表达式 示例 BREs EREs Python RegEx
\b 单词边界,如\bcool\b 匹配cool \b \b \b
\B 非单词边界,如cool\B 匹配coolant,不匹配cool \B \B \B
\d 单个数字字符,如b\db 匹配b2b,不匹配bcb 不支持 不支持 \d
\D 单个非数字字符,如b\Db 匹配bcb,不匹配b2b 不支持 不支持 \D
\w 单个单词字符 \w \w \w
\W 单个非单词字符 \W \W \W
\s 单个空白字符 不支持 不支持 \s
\S 单个非空白字符 不支持 不支持 \S

更多参考访问

分享