一、正则表达式
一个系统的使用,不仅仅只是软件的安装调试和维护,同时也是对与现有环境的优化和改革,我们在linux的使用过程中总是会遇到很多对于参数的描述,有时我们需要的是参数本身所给出的答案,有时我们仅仅需要的只是参数的最终状态结果。
是一些特殊或不很特殊的字符串模式的集合。通过一些元字符,来表示一些通配的意义,这可以简单的称之为正则表达式。
正则表达式:REGular EXPression, 简写为:REGEXP
元字符:
.:匹配任意单个字符
匹配字符次数(工作在贪婪模式下,尽可能的去匹配):
*:匹配其前面的字符任意次
a, b, ab, aab, acb, adb, amnb
a*b
.*:匹配任意长度的任意字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]
\?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{1,\} 至少一次
\{0,3\} 至多三次
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符后面的任意内容必须出现在行尾
^$: 空白行
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b: 锚定词尾,其前面的任意字符必须作为单词尾部出现
\<root\>: 精确匹配root
分组:
\(\)
\(ab\)* ab可以出现0次1次任意次
后向引用
\1: 第一个左括号以及与之对应的右括号所包括的所有内容
\2: 第二个左括号以及与之对应的右括号所包括的所有内容
\3: 第三个左括号以及与之对应的右括号所包括的所有内容
扩展的正则表达式:
字符匹配:
.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
次数匹配:
*:
?:匹配其前面的字符0次或一次
+:匹配其前面的字符至少一次
{m,n}:匹配至少m次至多n次
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符后面的任意内容必须出现在行尾
^$: 空白行
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b: 锚定词尾,其前面的任意字符必须作为单词尾部出现
\<root\>: 精确匹配root
分组:
(): 分组
\1, \2, \3, ...
或者
|:or (a|abc a或者abc)