链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

正则表达式匹配比特币地址?

问题描述

我试图根据这些规范提出一个正则表达式来匹配比特币地址:

比特币地址,或简称地址,是一个由 27-34 个字母数字字符组成的标识符,以数字 1 或 3 [...]

我想它看起来像这样

/^[13][a-zA-Z0-9]{27,34}/ 问题是,我不擅长正则表达式,而且我还没有找到单一来源来确认这不会造成假阴性。

我在网上找到了一个 ^1[1-9A-Za-z][^OIl]{20,40},但我什至不知道 [^OIl] 部分是什么意思,它似乎没有 匹配比特币地址可以开头的 3。

回复区

扫地僧 2021-10-13 19:47:55

^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$ 基于新地址类型 Bech32

扫地僧 2021-10-13 19:46:51

[^OIl] 匹配任何不是 O、I 或 l 的字符。 您的正则表达式中的问题是:

末尾没有 $,因此它会匹配以 BC 地址开头的任何字符串。 您没有计算 {27,34} 中的第一个字符 - 应该是 {26,33} 但是,正如评论中提到的,正则表达式不是验证比特币地址的好方法。

回答

合作伙伴