'Replaces all placeholders in given text with randomized values,
replacing: all hash sign (\'#\') occurrences with a random digit
(from 0 to 9); all percentage sign (\'%\') occurrences with a
random non-zero digit (from 1 to 9); all exclamation mark (\'!\')
occurrences with a random digit (from 0 to 9) or an empty string;
and all at symbol (\'@\') occurrences with a random non-zero digit
(from 1 to 9) or an empty string.
:param text: string to be parsed
:returns: string with all numerical placeholders filled in'

@classmethod
def numerify(cls, text='###'):

    text = _re_hash.sub((lambda x: str(BaseProvider.random_digit())), text)
    text = _re_perc.sub((lambda x: str(BaseProvider.random_digit_not_null())), text)
    text = _re_excl.sub((lambda x: str(BaseProvider.random_digit_or_empty())), text)
    text = _re_at.sub((lambda x: str(BaseProvider.random_digit_not_null_or_empty())), text)
    return text
