Мне нужно определить строки с формой @ base64 (например, @VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
) в моем приложении.
Значение @ должно быть в начале, а кодировка для строк с кодировкой base64 – az
, AZ
, 0-9
, +
, /
и =
. Будет ли подходящее регулярное выражение для их обнаружения?
благодаря
Что-то вроде этого должно делать (не проверяет правильную длину!):
^@[a-zA-Z0-9+/]+={0,2}$
Длина любой кодированной строки base64 должна быть кратна 4, следовательно, дополнительная.
См. Здесь решение, которое проверяет правильную длину: RegEx для анализа или проверки данных Base64
Быстрое объяснение регулярного выражения из связанного ответа:
^@ #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
попробуйте:
^@(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
=> RegEx для анализа или проверки данных Base64