正则表达式中的插入操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式中的插入操作相关的知识,希望对你有一定的参考价值。

参考技术A 写爬虫的时候,使用正则表达式提取、替换数据可以说是常规操作;之前总是很急功近利,以为记住几个常用的符号就能覆盖大部分使用场景了,反正来来回回都是在Python环境中,再不多写几个语句就能处理掉。
当然,正则的强大从一开始接触也是有所了解,不愿意再深入学习一是时间有限,二是确实没到非用不可的时候。最近,刚好有这么一个需求,于是又折回去看了一眼,在这里简单记录一下吧!
具体需求:学习django的过程中,从网上找了一个前端模板simple-admin,根据教程指示把模板的js/css/img等文件单独放入应用下的/static/文件夹,html文件则一股脑放入了/templates/。但html中引用的静态文件路径都还是同一文件夹下,这样就需要引入static变量,并逐一进行修改。
这是非常大的一个工作量,使用正则查找了一下有待修改的文件,仅index页面就有30多出需要修改,手动进行效率非常低下。既然格式非常相似,使用visual studio的查找替换功能应该可以解决,恰好支持正则表达式。但之前只是将特定模式的字符串替换成新字符串,如何在正则匹配到的特定位置进行插入呢?
通过查询文档,找到了正确的姿势:

本来以为有挺多需要扩展的,但是针对我这个需求好像知道这些也足够了。
我们想做的是将形如
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> 修改为
<link href=% static "bootstrap/css/bootstrap.min.css" % rel="stylesheet"> 。
也就是匹配到 href= 保存为 $1 , ".*.css|js|jpg" 保存在 $2 ,引号后的任意字符保存在 $3 。然后替换成 $1 % static $2 %$3 即可。
因为还有些细节问题需要处理,再加上我对正则的理解不太到位,实际上的表达式可能有些冗余和粗暴,这里就大概放个截图吧,效果还是杠杠的!

以上是关于正则表达式中的插入操作的主要内容,如果未能解决你的问题,请参考以下文章

clickhouse中插入查询中的正则表达式

如果正则表达式中的 `\A` 与 `^` (插入符号)之间有区别?

提取单词和单词之前,并在正则表达式中的“_”之间插入

如何匹配正则表达式中的插入符号 (^)?

通过forEach将变量插入正则表达式[重复]

pymongo处理正则表达式的情况