正则表达全面详解

1. 核心通配符

  作用:Path name Expansion(路径名扩展) ,由shell解析,用于文件名匹配。

   ls /etc/*.conf\>

  *:任意长度的任意字符
  ?:任意单个字符
  [ ] :指定范围内任意单个字符

[0-9],[A-Z],[a-z],[a-z0-9]
[[:upper:]] :所有大写字母
[[:lower:]] :所有小写字母
[[:alpha:]] :所有字母
[[:digit:]] :所有数字
[[:alnum:]] :所有字母和数字
[[:space:]] :空白字符
[[:punct:]] :所有标点符号

  [^] : 指定范围外的任意单个字符

[∧[:upper:]]
[∧0-9]
[∧[:alnum:]]


  ls -d /var/l?[[:lower:]]
  显示var目录下以 l 开头、以小写字母结尾、中间匹配任意单个字符的目录和文件。

  ls -d /etc/[0-9]*[^0-9]
  显示etc目录下以单个数字开头、以0-9以外任意单个字符结尾、中间匹配任意长度任意字符的目录和文件。

  [root@hadoop ~]# ls -dl /etc/[[:alnum:]]*[[:digit:]]
  显示etc目录下以任意字母和数字开头、以任意数字结尾、中间匹配任意长度的任意字符的目录和文件的长属性。

  [root@hadoop ~]# cp -r /etc/m*[^0-9] /tmp/metc.d
  递归复制etc目录下以m开头、以单个数字之外的任意字符结尾、中间匹配任意长度任意字符的目录和文件到tmp目录下的metc.d目录下。

  [root@hadoop bin]# cp -r /bin/[aflr]* /tmp/command
  递归复制bin目录下以a/f/l/r中任意一个开头、后跟任意长度任意字符的目录和文件到tmp目录下的command目录下。

2. 正则表达式

正则表达式:Regual Expression**
   概述:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意思,而是用于表示控制和通配的作用;分两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。

BRE云字符:
  字符匹配

表达式含义
.匹配任意单个字符
[ ]匹配指定范围内任意单个字符
[^]匹配指定范围外任意单个字符

  匹配次数

表达式含义
*匹配其前面的字符任意次
.*匹配任意长度的任意字符
\?匹配其前面的字符0次或1次
+匹配其前面的字符1次或多次
\{m\}匹配其前面的字符m次
\{m,n\}匹配其前面的字符至少m次,至多n次
\{0,n\}至多n次
\{m,\}至少m次

  位置锚定

表达式含义
^行首锚定;用于最左侧
$行尾锚定;用于最右侧
^PATTERN$用PATTERN来匹配整行
^$空白行
∧[[:space:]]*$空行或包含空白字符的行
\<或\b词首锚定;用于单词左侧
\>或\b词尾锚定;用于单词右侧
<PATTERN>匹配完整单词

  分组及引用

表达式含义
\(\)将一个或多个字符捆绑在一起,当做一个整体进行处理
\(\)ab\1自左侧起,第一个括号之间的模式所匹配到的字符
(\)ab\2自左侧起,第二个括号之间的模式所匹配到的字符
(\)ab\3

ERE:
  字符匹配
   同BRE一样
  匹配次数
   同BRE一样
  位置锚定
   同BRE一样
  分组及引用

表达式含义
()括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中
()……\1引用
a|ba或者b
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值