关于正则表达式的一些个人笔记



正则表达式:

使用正则表达式时,应注意当前的语系环境。

表12-1 P349

[:alnum:] :英文大小写以及数字

[:alpha:] :英文大小写

[:blank:] : 空格与【tab】按键

[:cntrl:] : 键盘上面的控制按键,包括CR,LF,Tab,Del等

[:digit:] : 数字 0-9

[:graph:] : 除了空格外的其他按键。

[:lower:] : 代表小写字符 a-z

[:print:] : 任何可以被打印的字符

[:punct:] :标点符号

[:upper:] : 代表大写字符 A-Z

[:space:] : 会产生空白的字符,包括空格键【Tab】 CR 等

[:xdigit:] : 代表十六进制数字类型

 

grep 的一些高级用法:

grep [-A] [-B] [--color=auto] '搜寻字符串' filename

-A : 列出该行和后续N行

-B : 列出该行和前面N行

--color=auto : 将正确的选取数据列出颜色

eg1:dmesg | grep -n -A3 -B2 --color=auto 'eth'

 

可以在 ~/.bashrc 内加上这行:alias grep='grep --color=auto'。 设置别名,然后source ~/.bashrc 来生效命令即可。

 

基础正则表达式练习

1. grep -n 'the' filename  提取存在the的行

2. grep -vn 'the' filename  反向提取该行没有the的行

3. grep -in 'the' filename  忽略大小写

4. grep -n 't[ae]st' filename  't[ae]st'的含义是“tast” or “test”

5. grep -n '[^g]oo' filename  提取文件中带oo的字符,但oo前不带g

6. grep -n '[^a-z]oo' filename   oo前不带小写字母

7. grep -n ‘[^[:lower:]]oo’ filename

8. grep -n '[[:digit:]]' filename

行首与行尾字符 "^ $"

9. grep -n '^the' filename 只选取行首存在the的字符

10. grep -n '^[a-z]' filename   列出开始是小写字母的行

11. grep -n '\.$' filename   列出结尾是. 的字符,由于. 具有其他含义,所以这里加入转移字符。

12. grep -vn '^$' filename | grep -vn '^#'

13.任意字符 . 与重复字符 *

两者在正则表达式中的含义:

. : 代表一定有一个任意字符的意思。

* : 代表重复前一个0到无穷多次的意思,为组合形态。

14. 限定连续RE字符范围{}

grep -n 'o\{2\}' filename

grep -n 'go\{2,6\}g' filename

基础正则表达式字符

^word

意义:word为待查找的字符串。且在行尾。

例子:grep -n '^state' filename

word$ 

意义:word为待查找的字符串,且在行尾。

例子:grep -n '^state' filename

.

意义:代表一定有一个任意字符的字符。

例子:grep -n 'e.e' filename

\

意义:转义字符,将特殊符号的特殊意义去除。

例子:grep -n \' filename    :查找含有单引号的那一行

*

意义:重复零个到无穷个的前一个字符

例子:grep -n 'ess*' filename

[list]

意义:从字符集合的RE字符里里面找出想要选取的字符

例子:grep -n 'g[ld]' filename  : 查找gl 或 gd 的字符

[n1-n2]

意义:从字符集合的RE字符里面找出想要选取的字符范围

例子:grep -n '[0-9]' filename    : 查找含有任意数字的那一行

[^list]

意义:从字符集合的RE字符里面找出不要的字符串或范围

例子:grep -n 'oo[^t]' filename        : 字符串oo的结尾不能有t

\{n,m\}

意义:连续n到m个的前一个RE字符,\{n\}连续n个RE字符,\{n,\}连续n个以上RE字符

例子:grep -n 'go\{2,3\}g' filename

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值