• BASH中的通配符(wildcard)
*:任意长度的任意字符。
?:任意单个字符
[]:匹配范围
[^]:排除匹配范围
[:alnum:]:所有字母和数字
[:alpha:]:所有字母
[:digit:]:所有数字
[:lower:]:所有小写字母
[:upper:]:所有大写字母
[:blank:]:空白字符和TAB制表符
[:space:]:包括空白字符、TAB制表符(\t)、换页(\f)
[:cntrl:]:所有控制字符
[:graph:]:可打印并可看到的字符。空格是可打印的,但是不是可看到的。
[:print:]:所有可打印字符
[:punct:]:所有标点符号,非字母、数字、控制字符和space字符。
[:xdigit:]:十六进制数的字符。
  • 正则表达式
.:表示匹配任意单个字符。
*:表示匹配前面的字符任意次,包括0次。
.*:表示匹配任意长度的任意字符。
?:可能需要使用反斜线进行转义才可以,表示的是前面的字符出现0次或1次。\?
\{n,m\}:匹配前面字符出现n到m次。
\{n,\}:匹配前面字符出现n次以上。
\{n\}:匹配前面字符出现n次。
^:匹配行首,此字符后面的内容必须出现在行首。
$:匹配行尾,此字符后面的内容必须出现在行尾。
^$:匹配空白行。
[]:表示指定匹配范围内的任意单个字符。
[^]:表示指定范围外的任意单个字符。
注意:使用下面的匹配时,要使用两个方括号,如[[:alpha:]]
[:alnum:] [:alpha:] [:blank:] [:cntrl:]
[:digit:] [:graph:] [:lower:] [:print:]
[:punct:] [:space:] [:upper:] [:xdigit:]
\<:表示其后面的任意字符必须作为单词的首部出现。
\>:表示其前面的任意字符必须作为单次的尾部出现。
上述的两个,也可以用\b来表示。
如:\broot表示root出现在词首。root\b表示root出现在词尾。
\<root\>:表示的root单次必须出现在词首和词尾。
\(\):将字符串分组,作为一个整体。
  • 扩展正则表达式
字符匹配
  .:匹配任意单个字符
  []:匹配指定范围内的任意单个字符
  [^]:匹配指定范围外的任意单个字符
  [-]:匹配[]中指定范围内的任意一个字符,要写成递增
POSIX字符类:
  [:digit:]:匹配任意一个数字字符
  [:lower:]:匹配小写字母
  [:upper:]:匹配大写字母
  [:alpha:]:匹配任意一个字母字符(包括大小写字母)
  [:alnum:]:匹配任意一个字母或数字字符
  [:space:]:匹配一个包括换行符、回车等在内的所有空白符
  [:punct:]:匹配标点符号
  \:转义符,将特殊字符进行转义,忽略其特殊意义
匹配次数:
  *:匹配前面的字符任意次
  .*:任意长度的任意字符
  ?:匹配其前面的字符0或1次;即前面的可有可无
  +:匹配其前面的字符至少1次;
  {m}:匹配前面的字符m次;
  {m,n}:匹配前面的字符至少m次,至多n次;
  {,n}:匹配前面的字符至多n次;
  {m,}:匹配前面的字符至少m次;
位置锚定:
  ^:行首锚定;用于模式的最左侧;
  $:行尾锚定;用于模式的最右侧;
  ^PATTERN$: 用于模式匹配整行;
  ^$: 空行;
  ^[[:space:]]*$:空白行
单词锚定:
  \< 或 \b:词首锚定;用于单词模式的左侧;
  \> 或 \b:词尾锚定;用于单词模式的右侧;
  \<PATTERN\>:匹配整个单词;
分组:
  ():将一个或多个字符捆绑在一起,当作一个整体进行处理;
  (xy)*abNote:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \, \, \, …
  \: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;
  \:从左侧起,第:二个左括号以及与之匹配右括号之间的模式所匹配到的字符;
  后向引用:引用前面的分组括号中的模式所匹配字符,(而非模式本身)
或者:
  a|b
  C|cat: C或cat

参考自:http://hezhanglinux.blog.51cto.com/10861477/1711113

Bash 通配符、正则表达式、扩展正则表达式的更多相关文章

  1. linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...

  2. bash基础——grep、基本正则表达式、扩展正则表达式、fgrep

    grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要 ...

  3. Linux通配符与基础正则表达式、扩展正则表达式

    在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符.而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前 ...

  4. egrep 及扩展正则表达式

    grep -E 表示支持扩展的正则表达式 grep -E = egrep 一.字符匹配: 扩展模式下的字符匹配与基本正则表达式的字符匹配相同,如: . 表示任意单个字符 [] 表示范围内人任意单个字符 ...

  5. 【转】 bash简介及通配符、扩展通配符 shopt -s extglob

    http://www.rhce.cc/?p=1005 当我们执行一些命令的时候,很多的命令是由bash提供的.如果我们想知道某个命令是否是由bash内置的命令的话,我们可以使用type bash内置命 ...

  6. ES6正则表达式扩展

    前面的话 正则表达式是javascript操作字符串的一个重要组成部分,但在以往的版本中并未有太多改变.然而,在ES6中,随着字符串操作的变更, ES6也对正则表达式进行了一些更新.本文将详细介绍ES ...

  7. egrep及扩展正则表达式 与正则表达式不同处

    egrep及扩展正则表达式与正则表达式不同处 正则表达式有两类,分为基本正则表达式和扩展正则表达式,是使用命令egrep来使用扩展正则表达式,它与grep很多功能相同,仅在元字符上实现了些扩展扩展,在 ...

  8. 正则表达式RE与扩展正则表达式ERE——grep与egrep

    grep 正则表达式规则: ^ 行首定位符,表示从行首开始进行模式匹配 . 一个非换行符的字符 [ ] 匹配属于此集合的任意一个字符 [^ ] 匹配不属于此集合的任意一个字符 [a-z] (其指定的集 ...

  9. [LeetCode][Facebook面试题] 通配符匹配和正则表达式匹配,题 Wildcard Matching

    开篇 通常的匹配分为两类,一种是正则表达式匹配,pattern包含一些关键字,比如'*'的用法是紧跟在pattern的某个字符后,表示这个字符可以出现任意多次(包括0次). 另一种是通配符匹配,我们在 ...

随机推荐

  1. 从零开始的vue学习笔记(二)

    数据与方法 当一个 Vue 实例被创建时,它将 data 对象中的所有的属性加入到 Vue 的响应式系统中.data的数据和视图同步更新. 实例创建后添加一个新的属性,对这个属性的的改动将不会触发任何 ...

  2. IDEA 学习笔记之 多线程调试

    多线程调试: 在多线程调试的时候,发现一些断点会被跳过,让人很郁闷,然后上网查了下资料,发现是自己IDEA设置不对. 使用IDEA调试多线程的时候,IDEA的断点有不同的模式,只有当Thread模式下 ...

  3. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 子进程管理 electron教程(三): ...

  4. 六、springboot 简单优雅是实现短信服务

    前言 上一篇讲了 springboot 集成邮件服务,接下来让我们一起学习下springboot项目中怎么使用短信服务吧. 项目中的短信服务基本上上都会用到,简单的注册验证码,消息通知等等都会用到.所 ...

  5. java生成32位UUID

    java生成32位UUID,具体代码如下: package com.fxsen.uuid; import java.util.UUID; /** * Copyright: Copyright (c) ...

  6. JNDI-Injection-Exploit

    介绍 最近把自己之前写的JNDI注入利用工具改了一下push到了github,地址:https://github.com/welk1n/JNDI-Injection-Exploit,启动后这个工具开启 ...

  7. 机器学习回顾篇(7):决策树算法(ID3、C4.5)

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  8. 介绍ArcGIS中各种数据的打开方法——shp(矢量文件)

    2.加载shp文件到地图控件 ShapeFile是一种矢量数据模型的计算机数据组织文件,用于在计算机上表达矢量数据的计算机文件. 加载ShapeFile文件最主要是:axMapControll控件对象 ...

  9. mvc请求管道(一)

    一.前言 在平常做后台开发的时候,经常会说到请求管道,很多开发者都知道这个,也能说几句,可能没法详细的去介绍,今天就来详细的说一下这个. 二.到达IIS之前 请看下面这个流程图.从用户打开浏览器到请求 ...

  10. [牛客网NOIP赛前集训营-提高组(第一场)]C.保护

    链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...