C# 比特币地址验证 [旧版、嵌套 SegWit、本机 SegWit] |离线

C# Bitcoin Address Validation [Legacy, Nested SegWit, Native SegWit] | OFFLINE

我正在寻找 class 或 c# 语言的方法来验证比特币地址。(离线)
我想验证 [Legacy, Nested SegWit, Native SegWit] address types.

为此,我发现了这个:
determine-if-a-bitcoin-wallet-address-is-valid
但它只验证旧地址。

我也发现了这个:
bitcoin-address-validation
但我认为它为此目的使用 api 并且语言不是 c#。

我也发现了这个:
bitcoin-address-validator
这不是 c# 语言。它是 php,我不熟悉 php。

我也发现了这个:
address_validation
太旧且仅适用于旧版地址。

请给我一个解决方案。


确定比特币地址的类型对我来说并不重要。
我只想知道一个字符串是不是比特币地址。

正确的正则表达式:

string re_path = @"^(?:[13]{1}[a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[a-z0-9]{39,59})$";

来源:
Regex for Bitcoin Addresses
注意:
Base58 中的地址长度不固定。它可能小到 26 大到 35 (另一个答案使用了错误的值)
所以我在这个答案中更正了它

测试:
Regex-Test