linux笔记之正则表达式(一)

linux笔记之正则表达式(一)

基础正则表达式

说明:
  • 正则表达式基本上是一种“表达式”, 只要工具程序支持这种表达式,那么该工具程序就可以用来作为正则表达式的字串处理之用。 例如 vi, grep, awk,sed 等等工具,因为她们有支持正则表达式。
重要性:
  • 我们谈到的这个正则表达式,与前一章的 BASH 就有点像是数学的九九乘法表一样,是Linux 基础当中的基础。

一:grep工具

  • 范例一:用 dmesg 列出核心讯息,再以 grep 找出内含 qxl 那行
    [dmtsai@study ~]$ dmesg | grep ‘qxl’
  • 范例二:承上题,要将捉到的关键字显色,且加上行号来表示:
    [dmtsai@study ~]$ dmesg | grep -n --color=auto ‘qxl’
  • 范例三:承上题,在关键字所在行的前两行与后三行也一起捉出来显示
    [dmtsai@study ~]$ dmesg | grep -n -A3 -B2 --color=auto ‘qxl’
样例
  • 例题一、搜寻特定字串
    • [dmtsai@study ~]$ grep -n ‘the’ regular_express.txt
    • 想要“反向选择”呢?也就是说,当该行没有 ‘the’ 这个字串
    • [dmtsai@study ~]$ grep -vn ‘the’ regular_express.txt
  • 例题二、利用中括号 [] 来搜寻集合字符
    • [dmtsai@study ~]$ grep -n ‘t[ae]st’ regular_express.txt
    • 其实 [] 里面不论有几个字符,他都仅代表某“一个”字符
  • 在一组集合字符中,如果该字符组是连续的,例如大写英文/小写英文/数字
    等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写
    • 取得有数字的那一行
    • [dmtsai@study ~]$ grep -n ‘[0-9]’ regular_express.txt
    • 我们知道 [:lower:] 就是 a-z 的意思,那么 [a-z] 当然就是 [[:lower:]] 啰。
  • 例题三、行首与行尾字符 ^ $
    • 想要让 the 只在行首列出呢?
    • [dmtsai@study ~]$ grep -n ‘^the’ regular_express.txt
    • 那个 ^ 符号,在字符集合符号(括号[])之内与之外是不同的! 在 [] 内代表“反向选择”,在 [] 之外则代表定位在行首的意义!
    • 要找出来,哪一行是“空白行”。
    • [dmtsai@study ~]$ grep -n ‘^$’ regular_express.txt
  • 例题四、任意一个字符 . 与重复字符 *
    • 假设我需要找出 g??d 的字串,亦即共有四个字符,起头是 g 而结束是 d ,我可以这样做。
    • [dmtsai@study ~]$ grep -n ‘g…d’ regular_express.txt
    • 当我们需要“至少两个 o 以上的字串”时,就需要 ooo*
    • .* 就代表零个或多个任意字符”的意思啦!
  • 如果我想要找出“任意数字”的行列呢?因为仅有数字,所以就成为:
    • [dmtsai@study ~]$ grep -n ‘[0-9][0-9]*’ regular_express.txt。
基础正则表达式字符汇整

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值