正则表达式学习(二)

元字符 . (dot符)

元字符 . 可以匹配任意字符

image.png

串:  '03[-./]19[-./]76' 里的 - 不是连字符
      .也不是元字符, 不表示任意字符匹配
      这时, '[-./]' 表示匹配范围是 -  .  /  这三个字符
      因为 他们紧紧跟在集合外框--- 元字符 [ 后  (or [^之后)
连字符不位于开头的case下, 连字符才用来表示范围

So here is a question: 元字符什么时候作为元字符,发挥特殊功能, 而什么时候单纯用做一个字符呢?
这个问题, 以现在我的水平暂时无法解答, 况且正则语法本身就是乱七八糟的.
下面, 我记录一个语法容易混淆的例子

  • 首先, 我在当前dir下 建立了三个文件 文件名如图


对于串:  '.txt'  
      此串 用于查找:  任意字符+txt  这一组合的字串
对于串: '*.txt'
      此串查找: (任意数量,任意字符串)+.txt 这一组合的字串

可见 字符 . 体现出了不同的效果
(下图标红为匹配字段)


多选结构 与 元字符 |

元字符 | 搭配小括号 () 使用
元字符 | 意为

'gr[ae]y' 匹配范围是 gray  grey
'gr(a|e)y' 匹配范围也是 gray grey
'gr[a|e]y'  匹配范围是 gray grey gr|y
如果|出现在集合中, 则他仅仅是一个普通字符

中括号[], 与小括号() 用法存在区别
中括号[]表示集合, 限定一个单位字符的范围
而小括号则是表示一种分支选择, 分支里面的内容是字符串, 字符个数是没有限制的

'D(rake|uck)' 范围是 Drake 和 Duck
(a|b) a, b 是不限长的 是独立的字符串个体

小括号用于限定范围, 但没有小括号, | 也是具备或功能的
'^From|Sub|Date' 范围是: ^From + Sub + Date
'^(From|Sub|Date)' 范围是: 以From/Sub/Date 为行开头
前者只指定了From这一个行开头
可见小括号,影响着正则表达式的语义

忽略大小写 grep -i

-i 参数, 可以忽略文件大小写


忽略大小写
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容