求Sublime Text中查找Django模板错误{% if %}单等号判断的正则表达式
解决Django模板中错误{% if a = b %}的正则匹配方案
我懂你要找的是Django模板里那些不小心用了单个=而非双==的错误if判断,还得避免误匹配正确的==写法。这里给你一个精准的正则表达式,能在Sublime Text里完美实现需求:
{% if .*?(?<!=)\s*=\s*(?!=).*? %}
正则各部分拆解说明:
{% if:精准匹配Django if标签的开头标识.*?:非贪婪模式匹配任意字符,防止过度匹配到其他模板标签(?<!=):负向后行断言,确保当前匹配的=左边不是另一个=,直接排除==的前半部分\s*:匹配=前后可能存在的0个或多个空格(兼容a=b、a = b、a =b等各种空格写法)=:锁定我们要找的单个错误等号(?!=):负向前瞻断言,确保=右边不是另一个=,排除==的后半部分- `.*? %}:非贪婪匹配到if标签的结尾
在Sublime Text中的使用步骤:
- 按下
Ctrl+F(Windows/Linux)或Cmd+F(Mac)打开搜索框 - 点击搜索框左侧的
.*按钮,启用正则匹配模式 - 粘贴上面的正则表达式,就能精准定位所有错误的
{% if a = b %}写法了
这个正则会完美避开正确的{% if a == b %},只抓取那些用了单个等号的错误行。
内容的提问来源于stack exchange,提问作者katonada
相关产品推荐
相关产品推荐

