shell基本正则表达式

基本正则表达式
  • 星号* 匹配它前面的字符串或正则表达式任意次(包括0次)。比如,“1122*” 将匹配11+1个或多个2,其可能匹配的字符串将是112、1122、112222、11223343等
  • 句点. 匹配除换行符之外的任意一个字符。比如,“112.”将匹配112+至少一个字符,其可能匹配的字符串是1121、122、112abc等,但不匹配112。
  • 插入符号^ 匹配一行的开始,但有时依赖于上下文环境,可能表示否定正则表达式中一个字符串的意思。比如,"^abc”将只匹配行首的abc字符串。
  • 美元符$ 在一个正则表达式的末尾,匹配一行的结尾。比如,"123$"将只匹配行尾的123,"^$"将匹配一个空行。
  • 方括号[] 匹配方括号内指定的字符集中的一个字符。比如,"[abc]"将匹配字符a、b、c中的任意一个字符,"[a-h]"将匹配从a~h的任意一个字符,"[A-Z][a-z]"将匹配任意一个大写或者小写字母,"[^a-d]"将匹配除a~d之外的所有字符。
  • 反斜线符号 转义一个特殊的字符,使这个字符得到字面意义的解释。比如,"$"将表示回他的原意"$",而不是表示行尾的正则表达式含义。类似地,"\"表示的字意识""
  • 转义尖括号<> 用于标记单词边界。尖括号必须是转义的,否则它们只有字符的字母含义。比如, "<the>"匹配单词"the",但不匹配“them”、“there”、“other”等等。

扩展正则表达式

  • 问号? 匹配0个或1个前面的字符,它通常用于匹配单个字符。比如,"ab?c" 将匹配"ac"或者"abc"
  • 加号+ 匹配1个或者多个前面的字符,它和*的作用相似,但它不匹配0个字符的情况。比如,"ab+c"将匹配"abc"、"abbc"、“abbbbc”等
  • 转义波形括号{} 指示匹配前面正则表达式的次数。波形括号必须是转义的,否则它们只有字符的字面含义。比如"[0-9]{5}" 将匹配5位数字。
  • 圆括号() 包含一组正则表达式。它们与下面要讲的"|", 或是在使用expr提取字符串时使用。
  • 竖线| 正则表达式的“或”操作符匹配一组可用的字符。比如"a(b|c)d"将匹配"abd"或"acd"。
POSIX字符
POSIX字符
含义
[:alnum:]
匹配字母和数字字符。等同于A-Z,a-z,0-9
[:alpha:]
匹配字母字符。等同于A-Z,a-z
[:blank:]
匹配空格或者制表符
[:cntrl:]
匹配控制字符
[:digit:]
匹配十进制数字。等同于0-9
[:graph:]
匹配ASCII码值在33-126的字符,与下面的[:print:]相似,但不包括空格字符
[:lower:]
匹配小写字母。等同于a-z
[:upper:]
匹配大写字母。等同于A-Z
[:print:]
匹配ASCII码值在32-126的字符,与下面的[:graph:]相似,但多了个空格字符
[:space:]
匹配空白字符(空格和水平制表符)
[:xdigit:]
匹配十六进制数字。等同于0-9,A-F,a-f


原文地址:https://www.cnblogs.com/cloud-datacenter/p/12329385.html