目录
一. 前期准备
👇👇👇有如下所示的日志👇👇👇
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系统。