正则表达式是处理字符串的方法,以行为单位进行字符串的处理,只要工具程序支持正则表达式这种表示法,那么该工具程序就可以作为正则表达式的字符串处理之用。
一些特殊符号
特殊符号 | 代表意义 |
---|---|
[[:alnum:]] | 英文大小写字符及数字,0-9, A-Z, a-z |
[[:alpha:]] | 任意英文大小写字符,A-Z,a-z |
[[:blank:]] | 空格键与[Tab]按键 |
[[:cntrl:]] | 键盘上的控制键, CR, LF, Tab, Del等 |
[[:digit:]] | 代表数字,0-9 |
[[:graph:]] | 除了空格符(空格键与[Tab])之外的其他所有按键 |
[[:lower:]] | 小写字符, a-z |
[[:print:]] | 任意可被打印的字符 |
[[:punct:]] | 标点符号,’?!;:#$ |
[[:upper:]] | 大写字符,A-Z |
[[:space:]] | 任何会产生空白的字符 |
[[:xdigit:]] | 十六进制的数字类型,0-9, A-F, a-f |
正则表达式的特殊字符
RE字符 | 意义 |
---|---|
^word | 待查找的字符串word在行首 eg:grep -n ‘^#’ file.txt |
word$ | 待查找的字符串word在行尾 eg:grep -n ‘!$’ file.txt |
\ | 转义字符,将特殊符号的特殊意义去除 |
* | 重复零个到无穷多个的前一个字符 eg: “.*”代表任意字符; ‘ess*’代表’es’,’ess’,’esss’等 |
[list] | 从字符集合的RE字符中找到想要的字符 eg:[afl]代表a或f或l |
[n1-n2] | 从字符集合的RE字符里面找出想要选取的字符范围 |
[^list] | 从字符集合的RE字符里面找出不要的字符串或范围 eg:[^A-Z]代表不要大写字符 |
\{n,m\} | 连续n到m个的前一个RE字符,若为\{n\}则是连续n个的前一个RE字符 |
说明:正则表达式的特殊字符与一般在命令行输入命令的“通配符”并不相同
eg: ls -l a* ==>代表找到以 a为开头的任何文件名的文件
在正则表达式:
ls -l | grep -n ‘^a.*’
from 鸟哥的私房菜