Что означает новое регулярное выражение BCH?
Регулярное выражение BCH было недавно обновлено (в API) для: "address_regex": "^([13][a-km-zA-HJ-NP-Z1-9]{25,34})|^((bitcoincash:)?(q|p)[a-z0-9]{41})|^((BITCOINCASH:)?(Q|P)[A-Z0-9]{41})$"
Это вещь Segwit?
Я понимаю, что сейчас говорят, что адреса могут начинаться с "bitcoincash:" или "BITCOINCASH:", но это вещь, или это какое-то внутреннее обозначение Coinbase?
2 ответа
Разбивая это регулярное выражение, есть три возможных, которые составляют действительный адрес МПБ:
1-я альтернатива ^([13][a-km-zA-HJ-NP-Z1-9]{25,34})
:
- Начинается либо с
1
или3
- Далее следует от 25 до 34 буквенно-цифровых символов, исключая
l
,I
,O
а также0
2-я альтернатива ^((bitcoincash:)?(q|p)[a-z0-9]{41})
:
- Начинается с буквенной строки
bitcoincash:
(странно, это может происходить не раз) - За этим следует либо
q
илиp
- Далее следует ровно 41 буквенно-цифровой символ (только в нижнем регистре)
3-я альтернатива ^((BITCOINCASH:)?(Q|P)[A-Z0-9]{41})$
:
- Начинается с буквенной строки
BITCOINCASH:
(странно, это может происходить не раз) - За этим следует либо
Q
илиP
- Далее следует ровно 41 буквенно-цифровой символ (только в верхнем регистре)
По сути, Coinbase теперь просто принимает три приведенных выше регулярных выражения в качестве действительных адресов BCH, добавляя bitcoincash
в качестве признанного протокола, используемого МПБ.
позвольте мне разбить его для вас, чтобы в нем было три регулярных выражения, так как после новых дополнений теперь все три принимаются как действительные адреса BCH.
/^([13]{1}[a-km-zA-HJ-NP-Z1-9]{33}|(bitcoincash:)?(q|p)[a-z0-9]{41}|(BITCOINCASH:)?(Q|P)[A-Z0-9]{41})$/
Разрушая это
Первый тип адресов
[13]{1}
адрес будет начинаться с L, M или 3, {1} определяет соответствие только одному символу в квадратных скобках
/[13]{1}[a-km-zA-HJ-NP-Z1-9]/
не может иметь l (маленький el), I (заглавный глаз), O (заглавный O) и 0 (ноль)
/[13]{1}[a-km-zA-HJ-NP-Z1-9]{26,33}/
может иметь длину от 27 до 34 символов, помните, что мы уже проверили, что первый символ равен 1 или 3, поэтому оставшийся адрес будет иметь длину от 26 до 33 символов.
второй тип адреса
bitcoincash:
начнется с bitcoincash:
(bitcoincash:)?(q|p)
затем q или p
(bitcoincash:)?(q|p)[a-z0-9]
могут быть только строчные буквы и цифры
(bitcoincash:)?(q|p)[a-z0-9]{41}
будет иметь длину 54 символа, мы уже проверили, что первые 11 символов являются биткойнами: за ними следует еще один символ, который будет Q или p, поэтому оставшийся адрес будет длиной 41 символ.
третий тип адреса
BITCOINCASH:
начнется с BITCOINCASH:
(BITCOINCASH:)?(Q|P)
затем Q или P
(BITCOINCASH:)?(Q|P)[a-z0-9]
могут быть только строчные буквы и цифры
(BITCOINCASH:)?(Q|P)[a-z0-9]{41}
будет иметь длину 54 символа, мы уже проверили, что первые 11 символов должны быть BITCOINCASH: за ними следует еще один символ, который будет Q или P, поэтому оставшийся адрес будет длиной 41 символ.