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. 一些例子
匹配一个或多个数字: \d+
匹配一个或多个字母: [a-zA-Z]+
匹配一个邮箱地址: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
匹配一个 URL: https?://[^\s/$.?#].[^\s]*
匹配一个日期(YYYY-MM-DD): \d{4}-\d{2}-\d{2}
1.4. 一些芝士
基础正规表示法的特殊字符有: *, ., [], [-], [^], ^, $
常见的支持正规表示法的工具软件有: grep , sed, vim
2. 文件格式化与相关处理
2.1. 格式化打印:printf
printf
printf 可以透过一些特殊符号来将数据进行格式化输出
是不是很像 C 语言...要不说 C 语言是接近底层的语言呢。
2.2. awk
数据处理工具
awk
数据处理工具awk 可以使用『字段』为依据,进行数据的重新整理与输出
2.3. diff
文件对比工具
diff
文件对比工具文件的比对中,可利用 diff 及 cmp 进行比对,其中 diff 主要用在纯文本文件方面的新旧版本比对
Last updated