Reputation: 85
I've currently got
preg_replace('/[^0-9]/s', '', $myvariable);
For example the input is GB -3. My current line is giving me the value 3. I want to be able to keep the minus so that the value shows -3 instead of the current output of 3.
Upvotes: 8
Views: 12337
Reputation: 7739
try this :
preg_replace('/[^\d-]+/', '', $myvariable);
breakdown of regex:
//
on both sides are regex delimiter - everything that is inside is regex[]
means that this is character class. Rules change in character class^
inside character class stands for "not".\d
is short for [0-9], only difference is that it can be used both inside and outside of character class-
will match minus sign+
in the end is the quantifier, it means that this should match one or more charactersUpvotes: 15