正则表达式 从文本中删除包含指定匹配文字所在的行


一. 前期准备

👇👇👇有如下所示的日志👇👇👇

Feb 14 07:33:02 app/web.1:  Completed 302 Found ...
Feb 14 07:36:46 heroku/api:  Starting process ...
Feb 14 07:36:50 heroku/scheduler.7625:  Starting ...
Feb 14 07:36:50 heroku/scheduler.7625:  State ...
Feb 14 07:36:54 heroku/router:  at=info method=...
Feb 14 07:36:54 app/web.1:  Started HEAD "/" ...
Feb 14 07:36:54 app/web.1:  Completed 200 ...

⏹该日志所对应的系统,有两种访问方式

  • 通过网页访问
    • app/web
    • heroku/router
  • 通过定时任务访问
    • heroku/api
    • heroku/scheduler

⏹需求

  • 仅匹配出通过网页访问的url所在行的日志

二. ^.+heroku\/api.+$

^.+heroku\/api.+$

  • ^.+:从行首开始的至少一个文字以上的文字
  • heroku\/api:要匹配的关键字,\用来给/进行转义
  • .+$:到行末尾为止的至少一个文字以上的文字

在这里插入图片描述


三. ^.+heroku\/(api|scheduler).+$

^.+heroku\/(api|scheduler).+$

  • heroku\/(api|scheduler):匹配heroku/api或者heroku/scheduler
  • 同时匹配所有通过定时任务访问的url

在这里插入图片描述


四. ^.+heroku\/(api|scheduler).+\r\n

😵如果我们直接通过 ^.+heroku\/(api|scheduler).+$ 正则表达式来替换的话,会发现之前的内容部分变为了空白行
🤔这是因为我们只是把匹配到的文本内容给替换为空,文本内容所在行的换行符并没有被替换

在这里插入图片描述

^.+heroku\/(api|scheduler).+\r\n

  • 在Windows系统中,换行符为\r\n
  • 而在linux系统中,换行符为\n

通过上述正则表达式进行替换,可以把匹配到的文本内容所在行的换行符也给替换掉。

在这里插入图片描述


五. ^.+heroku\/(api|scheduler).+\r?\n

^.+heroku\/(api|scheduler).+\r\n的正则表达式只适用于windwos系统,无法适用于linux系统
我们可以正则表达式稍加改造,使其更具有通用性。

⇓⇓⇓⇓⇓⇓

^.+heroku\/(api|scheduler).+\r?\n

  • \r?\n:表示\r可有可无,这样就能适用于linux系统。
  • 同时\r?\n中的\r\n也能适用于windwos系统。
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值