关于正则表达式替换的一个想法(常识)

前言

前几天在配置 nginx ,的 subs_filter 这个模块,这个模块的作用就是可以将网页返回的内容进行替换

subs_filter "数据" "Hello world" r;

比如上诉代码可以将原来网页中包含数据都替换为Hello world, 最后的r表示 是正则匹配,也就是第一个参数可以写正则匹配
然后我遇到了一个问题:
我替换的内容是不确定的,只知道是一个链接,但是我不可能将整个链接的正则都写出来,毕竟链接的url太多变化了,我想到了可以通过限制头尾部来匹配对应的内容

解决办法

限制头尾相同,那么就可以将头部尾部在匹配的正则和替换成内容的里面将头尾都写一遍
例如:

subs_filter "数据.*?结果" "数据Hello world结果" r;

以上就可以将 数据xxxx结果 替换成 数据Hello world结果
同样原理替换url 也可以,不需要知道url的正则怎么写, 头和尾部限定就好了

其他

由于写python习惯用re.findall 习惯将要匹配的打组,以为这样就会只替换括号中的内容

subs_filter "数据(.*?)" "Hello world" r;

这种语法是错误的,nginx的subs_filter没有这种语法

之所以写这篇文章,因为我当时陷入逻辑坑中了,总是想如果 正则里面如果写了头部和尾部,但是头部和尾部根本不是我想要的怎么办,不写头部和尾部就不能取到我要匹配的内容,但是后来突然想到了,不需要改变的内容只要在替换的里面重新写一遍就好了,非常简单

正则替换里面如果正则匹配里面有你不需要内容,只需要在替换成的内容里面再写一遍就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello_wshuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值