Я пытаюсь найти целую строку и все скобочные группы. Я хочу сделать это в строке:
contract var str = "contract CryptoGO is StandardToken, Babaika, Pisos, Banana { string public name; uint8 public decimals; string public symbol; string public version = 'H1.0'; uint256 public unitsOneEthCanBuy; uint256 public totalEthInWei; address public fundsWallet; function CryptoGOToken() { balances[msg.sender] = 1000000000000000000000000000; totalSupply = 1000000000000000000000000000; name = \"CryptoGO\"; decimals = 18; symbol = \"CGO\"; unitsOneEthCanBuy = 10000; fundsWallet = msg.sender; } function() payable{ totalEthInWei = totalEthInWei + msg.value; uint256 amount = msg.value * unitsOneEthCanBuy; if (balances[fundsWallet] < amount) { return; } balances[fundsWallet] = balances[fundsWallet] - amount; balances[msg.sender] = balances[msg.sender] + amount; Transfer(fundsWallet, msg.sender, amount); fundsWallet.transfer(msg.value); } function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); if(!_spender.call(bytes4(bytes32(sha3(\"receiveApproval(address,uint256,address,bytes)\"))), msg.sender, _value, this, _extraData)) { throw; } return true; }}";
Пример моего кода:
var str = "contract CryptoGO is StandardToken, Babaika, Pisos, Banana { string public name; uint8 public decimals; string public symbol; string public version = 'H1.0'; uint256 public unitsOneEthCanBuy; uint256 public totalEthInWei; address public fundsWallet; function CryptoGOToken() { balances[msg.sender] = 1000000000000000000000000000; totalSupply = 1000000000000000000000000000; name = \"CryptoGO\"; decimals = 18; symbol = \"CGO\"; unitsOneEthCanBuy = 10000; fundsWallet = msg.sender; } function() payable{ totalEthInWei = totalEthInWei + msg.value; uint256 amount = msg.value * unitsOneEthCanBuy; if (balances[fundsWallet] < amount) { return; } balances[fundsWallet] = balances[fundsWallet] - amount; balances[msg.sender] = balances[msg.sender] + amount; Transfer(fundsWallet, msg.sender, amount); fundsWallet.transfer(msg.value); } function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); if(!_spender.call(bytes4(bytes32(sha3(\"receiveApproval(address,uint256,address,bytes)\"))), msg.sender, _value, this, _extraData)) { throw; } return true; }}";
var re = /[^(//)]?\s?contract\s+([a-zA-Z0-9_\-]+)\s*is?\s+([a-zA-Z0-9_\-]+)\s*[, {]/ig;
var res
while ((res = re.exec(str)) != null) {
console.log(res);
}
Сейчас я имею вывод:
[
"contract CryptoGO is StandardToken,",
"CryptoGO",
"StandardToken"
]
А хочу получить следующий вывод:
[contract CryptoGO is StandardToken, Babaika, Banana {,
CryptoGO,
StandardToken,
Babaika,
Banana]
Как правильно переписать регулярное выражение, чтобы оно давало ожидаемый вывод?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Не выполняется третье условие else ifПервые два работают корректно
Как при нажатии на кнопку (страницу уже зарендерина) создать элемент?