RegEx for detecting base64 encoded strings

try with:

^@(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$

=> RegEx to parse or validate Base64 data


Something like this should do (does not check for proper length!):

^@[a-zA-Z0-9+/]+={,2}$

The length of any base64 encoded string must be a multiple of 4, hence the additional.

See here for a solution that checks against proper length: RegEx to parse or validate Base64 data

A quick explanation of the regex from the linked answer:

^@ #match "@" at beginning of string
(?:[A-Za-z0-9+/]{4})* #match any number of 4-letter blocks of the base64 char set
(?:
    [A-Za-z0-9+/]{2}== #match 2-letter block of the base64 char set followed by "==", together forming a 4-letter block
| # or
    [A-Za-z0-9+/]{3}= #match 3-letter block of the base64 char set followed by "=", together forming a 4-letter block
)?
$ #match end of string

Tags:

Php

Regex

Base64