正则表达式需求:匹配排除特定解构模式的currentStore赋值语句
匹配非useApp模式的currentStore赋值语句
正则方案
可以利用负向预查排除你已匹配的目标模式,得到如下正则表达式:
^(?!.*const\s+\{.*currentStore.*\}\s*=\s*useApp).*currentStore\s*=
规则解释:
^(?!.*const\s+\{.*currentStore.*\}\s*=\s*useApp):负向预查断言,确保当前行不存在const {currentStore} = useApp这类解构赋值结构.*currentStore\s*=:匹配所有包含currentStore =的赋值语句
注意事项
- 若目标代码存在换行(比如解构语句拆分为多行),需根据使用的正则引擎添加多行模式支持(如JavaScript中添加
s修饰符,即/(?s)^(?!.*const\s+\{.*currentStore.*\}\s*=\s*useApp).*currentStore\s*=/) - 对于嵌套解构、注释中的语句等复杂场景,纯正则可能出现误判。此时更推荐用代码语法分析工具(如自定义ESLint规则)来实现精准检测,避免正则的局限性
内容的提问来源于stack exchange,提问作者Akhilesh Kumar
相关产品推荐
相关产品推荐

