个性分组符号(微信个性分组名称带符号)

  # **前言**

  Linux 中对于流式数据处理有 sed 和 gawk 两种工具可以使用,其中模式 (正则) 匹配可以很好的协助我们要对哪些行做处理。因此,正则匹配也就成为 linux 中相对来说比较重要的知识点,对此做了一些整理归纳。

ETL-Kettle学习笔记

  ## 特殊字符

  本文对正则表达式的归纳主要从 正则表达式的 特殊字符入手,正则中的特殊字符有:

  . * + ? ^ $ \ | / () {} []

  一共15 个字符,可以分类记忆为 (4 + 2 + 3 + 2 * 3):

  - 4 个填充类标识: . * + ?

  - 2 个锚点符号: ^ $

  - 3 个斜线: \ | /

  - 6 个括号: ( ) { } [ ]

  ## BRE 和 ERE

  Linux 中的正则匹配引擎有两种:

  - BRE: POSIX 基础正则表达式,basic regular expression

  - ERE:POSIX 扩展正则表达式,extended regular expression

  显然 ERE 支持的功能比 BRE 更强大,但是所需要的性能开销也更大。 其中, sed 仅仅支持 BRE 引擎(因为更看重流式数据的处理数据),gawk 支持了 ERE。

  其中 BRE 无法支持 :

  - 加号: +

  - 问号: ?

  - 管道符号: |

  - 间隔符号: { }

  - 分组符号: ( )

  > gawk 如果要是用 间隔符号 , 需要加上 --re—interval 标识

  >

  # **四个填充类标识**

  **点号 .**

  - 表明该位置有一个任意字符

  **星号 ***

  - 表明前一个字符可以出现任意多次(包括0次)

  **加号 +**

  - 表明前一个字符至少出现1 次

  **问号 ?**

  - 表明前一个字符出现 0 次 或者 1 次

  # **两个锚点类符号**

  **脱字符 ^**

  - 一般用于表达式开头,限定表达式从首部开始匹配

  - 如果用于**区间符号**(见下文),表明区间取反

  **美元符 $**

  - 一般用于表达式末尾,限定字符串末尾模式

  # **三个斜线**

  **反斜线 \**

  - 用于转义特殊字符

  **管道符 |**

  - 「或」 语法,用于连接两个匹配规则,任意规则命中,即为命中

  **正斜线 /**

  - 字段分隔符 (FS: field separator ),在 sed 或者 gawk 中分割参数信息

  # **六个括号**

  **分组符号 ( )**

  - 用于将一串字符视为整体, 一般后面可接 . * ? + {} 等标识符

  **间隔符 { }**

  - 用于指定前一个字符的出现次数,常见用法有 {m} 或者 {m, n}

  **字符组/区间 [ ]**

  - 字符组: 表示该位置值字符组中的任一字符,例如 [ab] [abcdefghi] 等

  - 区间: 可以用 - 表示取值范围,避免穷举。 例如 [a-g] [1-9]

  - 特殊字符组: 用标识来表示区间,特殊字符组如下表所示

  | 组 | 描述 |

  | --- | --- |

  | [[:alpha:]] | 匹配任意字母字符,不管是大写还是小写 |

  | [[:alnum:]] | 匹配任意字母数字字符0~9、A~Z或a~z” |

  | [[:blank:]] | 匹配空格或制表符 |

  | [[:digit:]] | 匹配0~9之间的数字 |

  | [[:lower:]] | 匹配小写字母字符a-z |

  | [[:print:]] | 匹配任意可打印字符 |

  | [[:punct:]] | 匹配标点符号 |

  | [[:space:]] | 匹配任意空白字符: 空格、制表符、NL、FF、VT和 CR |

  | [[:upper:]] | 匹配任意大写字母字符 A-Z |


本站站长注释
本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们讲将第一时间处理。E-mail:1101144592@qq.com

作者头像
一成创始人

刘敏

上一篇:潮流qq(潮流前夜)
下一篇:qq群成员名字前缀(战队成员名字前缀)

相关推荐

发表评论