awk学习笔记2-基础正则表达式

(一)正则表达式基础

1.重复匹配
*     匹配前面的模式零次或多次/匹配前面那个字符 0 或多次
+     匹配前面的模式一次或多次/匹配前面那个字符 1 次以上
?     匹配前面的模式零次或一次/匹配前面那个字符 0 或一次
{M,N} 匹配前面那个字符至少 M,最多 N 次
{M,}  匹配前面那个字符至少 M 次,最多无限制
{,N}  匹配前面那个字符最多 N 次 (最少当然是 0)。注意,perl 正则不支持这种方式
{M}   匹配前面那个字符正好 M 次


2.字符类
[ ]    匹配括号内的任意一个字符。例如,[abc] 匹配字符 "a""b""c"[^ ]   匹配除了括号内的字符以外的任意一个字符。例如,[^abc] 匹配除了字符 "a""b""c" 以外的任意字符。
\d     任何一个数字字符;
\D     任何一个非数字字符
\w     任何一个字母数字或下划线,等于[a-zA-Z0-9_]\W     相当于[^a-zA-Z0-9_]
\s     任何一个空白字符;
\S     任何一个非空白字符。

3.边界匹配
^    匹配字符串的开头。
$    匹配字符串的结尾。
\b   匹配单词边界。
\B   匹配非单词边界。

4.分组和捕获
( )  用于分组和捕获子表达式。
(?: )用于分组但不捕获子表达式。

5.特殊字符
.    匹配任意单个字符,但不能匹配换行符 \n
\    转义字符,用于匹配特殊字符本身。
|    用于指定多个模式的选择。
^$   它表示匹配空行
.*   匹配任意长度的任意字符,但不能匹配换行符

(二).正则表达式标记

/pattern/flags
标记flags 含义 描述
i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
g global - 全局匹配 查找所有的匹配项。
m multi line - 多行匹配 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
s 特殊字符圆点 . 中包含换行符 \n 默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。

你可能感兴趣的:(Linux三剑客,Linux,学习,笔记,正则表达式)