You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则匹配Solidity文件中的mapping(address => uint) public lockedAddresses结构

如何正确匹配Solidity中的lockedAddresses Mapping声明?

嘿,我看你在尝试用正则匹配Solidity代码里的mapping(address => uint) public lockedAddresses;但没成功,原来的表达式有几个关键问题,我来帮你修正并解释清楚:

原正则的问题点

  • 你用的([\w\s=>\d])是匹配单个字符,但你需要匹配的是address => uint这样的完整类型序列,字符集里的=>只是把这两个字符加入了可匹配的单个字符列表,没法识别成一个整体组合
  • 没有转义括号():正则里的括号是用于分组的特殊字符,要匹配代码里实际的括号,必须用\(和\)转义
  • 末尾缺少分号;:目标代码行的结尾是有分号的,原正则没包含这个部分,导致无法完全匹配整行

正确的正则表达式

mapping\s*\(address\s*=>\s*uint\)\s+(public\s+)?lockedAddresses;

正则各部分解释

  • mapping\s*:匹配关键字mapping,并允许后面跟任意数量的空白字符(空格、制表符都算)
  • \(:转义后匹配代码里的左括号(
  • address\s*=>\s*uint:匹配address、任意空白、=>、任意空白、uint的完整类型映射结构
  • \):转义后匹配代码里的右括号)
  • \s+:匹配括号后至少一个空白字符
  • (public\s+)?:可选匹配public关键字和后面的空白(问号表示这个分组是可选的,也就是不管有没有public都能匹配)
  • lockedAddresses;:精确匹配变量名和结尾的分号

用这个正则去匹配你给出的示例代码,就能精准命中mapping(address => uint) public lockedAddresses;这一行啦~

内容的提问来源于stack exchange,提问作者Stepan Poperechnyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:27:12