tools / regex library / bitcoin address
regex pattern · ready to copy

Regex for matching Bitcoin addresses (legacy + bech32)

Match P2PKH (`1...`), P2SH (`3...`), and Bech32 (`bc1...`) addresses.

intermediate javascript / pcre / python4 use cases

The pattern

(?:[13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[a-z0-9]{39,59})

Test cases

InputResult
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNamatches
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLymatches
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdqmatches
0x123abc (Ethereum)rejects
1tooshortrejects
bc1invalidrejects

Edge cases & caveats

Doesn't verify checksum — invalid-checksum addresses match. ALWAYS verify with bech32 / base58check decoder before treating as a valid address. Testnet has different prefixes (`m`, `n`, `2`, `tb1`).

Common use cases

Try variations against your data
regexlab is a free in-browser tester with side-by-side match highlighting, group inspector, and named-capture export to JS/Python/PCRE.
Open regexlab  

Related

uk postcode · image src in html · ipv4 address · username