In several application the mean is removed by using a high pass filter. A first order high pass filter has the following structure:
$$y[k] = x[k] - x[k-1] + \beta y[k-1]$$
or
$$y[k] = \beta x[k] - \beta x[k-1] + \beta y[k-1]$$
where $0<\beta<1$ determines the steepness of the high pass filter, larger $\beta$ leads to a steeper/sharper filter.
NOTE: Multiplying $x[k]$ and $x[k-1]$ by $\beta$ (as in the second equation) ensures that the gain per frequency is at most one. Due to the next normalization step, using this $\beta$ for $x$ is redundant.
Normalization of the signals energy can be performed with a recursive estimation of the signal energy:
$$ P_x[k] = \alpha y[k]y[k] + (1-\alpha) P_x[k-1] $$
where $y[n]$ is the zero mean signal and $0<\alpha<1$ is a forgetting factor. Small values for $\alpha$ lead to large time-constants of the recursive filter.
The normalized output output $z[k]$ is calculated as follows:
$$z[k] = \frac{y[k]}{\sqrt{P_x[k]}}$$
The signal $z[k]$ is a zero-mean signal with unit variance. You can scale your variance to a desired level $\sigma^2$ by applying the gain $\sqrt{\sigma^2}$ to signal $z[k]$.
NOTE1: A signal in the rang [0,1] always has a non-zero mean if the signal is not zero all the time.
NOTE2: In order to guarantee the signal levels to be in a specified range such as [-1,1], either a compression technique has to be applied or you have to know the original abolute maxima and minima such that you can scale to the desired range.
NOTE3: The variance in combination with the distribution only tells something about the majority of the samples.