【问题标题】:Find structure in solidity file在solidity文件中查找结构
【发布时间】:2018-09-16 14:23:31
【问题描述】:

我在文本文件中有下一个结构:mapping(address => uint) public lockedAddresses;,我想找到它。我尝试使用下一个正则表达式:mapping\s*\([\w\s=>\d]\)\s+(public\s+)?lockedAddresses。我不明白我怎么才能找到它。

var string = 'event Release();\n address public holder;\n	mapping(address => uint) public lockedAddresses;\n 	modifier isReleased () {\n	require(released || msg.sender == holder || msg.sender == owner);\n		require(lockedAddresses[msg.sender] <= now);\n		_;\n	}';

var position = string.search(/mapping\s*\([()\w\s=>\d]\)\s+(public\s+)?lockedAddresses/);

console.log(position);

如何在文本中找到结构:mapping(address =&gt; uint) public lockedAddresses;??

【问题讨论】:

    标签: javascript regex nsregularexpression solidity


    【解决方案1】:

    您需要重复字符类[()\w\s=&gt;\d]+ 一次或多次以匹配左括号( 后的address =&gt; uint

    映射\s*\([()\w\s=>\d]+\)\s+(public\s+)?lockedAddresses ^

    var string = 'event Release();\n address public holder;\n	mapping(address => uint) public lockedAddresses;\n 	modifier isReleased () {\n	require(released || msg.sender == holder || msg.sender == owner);\n		require(lockedAddresses[msg.sender] <= now);\n		_;\n	}';
    var position = string.search(/mapping\s*\([()\w\s=>\d]+\)\s+(public\s+)?lockedAddresses/);
    console.log(position);

    要完全匹配mapping(address =&gt; uint) public lockedAddresses;,您应该在正则表达式之后附加一个分号(并且您可以使(public\s+) 成为非捕获组):

    mapping\s*\([()\w\s=&gt;\d]+\)\s+(?:public\s+)?lockedAddresses;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多