第一次写博客,记录一下学习Linux的过程啦~
主要内容来自mooc上的《Linux开发环境及应用》
正则表达式的概念
正则表达式可以用来描述一个字符串模式
正则表达式的元字符
. (圆点)
可以匹配任意单字符
* (星号)
可匹配0次或任意多次
如:
12*4
可以匹配124,1224,124(2的次数任意)
[a-z][0-9] *
可以匹配a1,b65,e4657(数字次数任意)
[
表示集合
\ (反斜线)
转义符号
^
在首部时有特殊意义,否则与其自身匹配
如:123$
匹配文件中行尾的123,不在行尾的123字符匹配
$
在尾部时有特殊意义,否则与其自身匹配
如:^printf
匹配行首的printf字符串,不在行首的printf串不匹配
这六个字符在正则表达式中与有特殊的意义,不能与自身匹配。用反斜线****可以消除这六个特殊字符的特殊含义。
如:end. ------------只与字符串end.匹配
其他字符与其自身匹配。
注意 转义字符\ 后除了元字符之外不该出现其他字符。
如:\u
这样的组合被视为undefined(未定义的),后出的软件可能会有特殊的解释
单字符正则表达式基本用法
1.在一对方括号之间的字符为集合的内容
如:[abcd]可以与a或b或c或d匹配
圆点、星号、反斜线在方括号内时,代表它们自己
如:[*.]可以与\或*或.相匹配
2.用-(减号)定义一个区间,减号在最后,则失去表示区间的意义。
如:[a-z] [A-Z] [a-zA-Z0-9]
[ad-] 能与3个字符匹配
注意 [][]集合包含左右中括号两个字符
3.用^表示补集, ^不在开头,则失去其表示补集的意义
^在开头,则表示与集合内字符之外的任意字符匹配
如:[^a-z]匹配任一非小写字母
[a-z^]能匹配27个单字母