11-. Regular Expressions and File Formatting

11-. 正规表示法 与 文件格式化

正规表示法 (Regular Expression, RE, 或称为常规表示法)是透过一些特殊字符的排列,用以『搜寻/取代/删除』一列或多列 文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项『表示式』。

1. 正规表示法

正则化表达式。通过字符串处理方法,进行模糊匹配进而进行字符串的 - 搜寻/删除/取代。

这么说貌似有点像通配符?

正规表示法与通配符是完全不一样的东西!通配符 (wildcard) 代表的是 bash 操作接口的一个功能, 但正 规表示法则是一种字符串处理的表示方式!

1.1. 主要功能

正则表达式的主要功能包括:

  • 1. 匹配:检查一个字符串是否符合某种特定的模式。

  • 2. 搜索:在一个文本中搜索符合某种模式的所有出现。

  • 3. 替换:将符合某种模式的文本替换为另一种文本。

  • 4. 分割:根据某种模式将文本分割成多个部分。

1.2. 基本元素

  • 普通字符:字母、数字和符号,它们匹配自身。

  • 特殊字符:

    • . (匹配任意单个字符)

    • * (匹配前面的字符零次或多次)

    • + (匹配前面的字符一次或多次)

    • ? (匹配前面的字符零次或一次)

    • [] (匹配方括号内的任意单个字符)

    • () (分组)

    • | (逻辑或)

  • 元字符:

    • \d (匹配任意数字)

    • \w (匹配任意字母数字字符,包括下划线)

    • \s (匹配任意空白字符)

  • 量词:

    • {n} (恰好匹配 n 次)

    • {n,} (至少匹配 n 次)

    • {n,m} (至少匹配 n 次,最多匹配 m 次)

  • 定位符:

    • ^ (匹配行的开始)

    • $ (匹配行的结束)

1.3. 一些例子

  1. 匹配一个或多个数字: \d+

  2. 匹配一个或多个字母: [a-zA-Z]+

  3. 匹配一个邮箱地址: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b

  4. 匹配一个 URL: https?://[^\s/$.?#].[^\s]*

  5. 匹配一个日期(YYYY-MM-DD): \d{4}-\d{2}-\d{2}

1.4. 一些芝士

  • 基础正规表示法的特殊字符有: *, ., [], [-], [^], ^, $

  • 常见的支持正规表示法的工具软件有: grep , sed, vim

2. 文件格式化与相关处理

2.1. 格式化打印:printf

printf 可以透过一些特殊符号来将数据进行格式化输出

是不是很像 C 语言...要不说 C 语言是接近底层的语言呢。

2.2. awk 数据处理工具

awk 可以使用『字段』为依据,进行数据的重新整理与输出

2.3. diff文件对比工具

文件的比对中,可利用 diff 及 cmp 进行比对,其中 diff 主要用在纯文本文件方面的新旧版本比对

Last updated