Python
DER簽名十六進制的正則表達式(也是req,地址,TxID)?
我正在使用 Python (2.7) 及其
re
模組來辨識各種比特幣數據,即:地址、DER sigs、OP 返回十六進制數據、TxID
我一直在使用
re.compile
:例如,對於有效的 Tx 雜湊(TxID):RE_TXHASH = re.compile('^[0-9a-fA-F]{64}$') if bool(re.match(RE_TXHASH, 'f'*64)): # 'f'*63 would fail print 'valid tx hash!' else: raise Exception("invalid tx hash!")
我正在尋找以下正則表達式模式(或我目前最佳嘗試的輸入):
- DER 簽名:通用格式*
"30[sig_size]02[r_size]02[s_size][sighash]"
*- 比特幣地址:
re.compile('^[123mn]{1}[a-km-zA-HJ-NP-Z0-9]{26,33}$')
- OP 返回十六進製字元串:
re.compile('^(6a){1}[a-fA-F0-9]{0,80}$')
- TxID:
re.compile('^[0-9a-fA-F]{64}$')
編輯:澄清一下,有人可以為此提供正則表達式模式嗎?
"30[sig_size]02[r_size]02[s_size][sighash]"
對於 DER 信號,R 或 S 可能非常小。
- 標誌:
re.compile('^30[0-9a-fA-F]{72,136}02[0-9a-fA-F]{0,64}02[0-9a-fA-F]{0,64}[0-9a-fA-F]{8}')
比特幣地址不能有 0。另外 {1} 是多餘的
- 比特幣地址:
re.compile('^[123mn][a-km-zA-HJ-NP-Z1-9]{26,33}$')
同樣,對於 OP_RETURN,{1} 是多餘的。此外,a 可能會大寫。
- OP 返回十六進製字元串:
re.compile('^6[aA][a-fA-F0-9]{0,80}$')
TXID 沒問題