Remove everything but numbers and minus sign PHP preg_replace
php, preg-replace, regex
Solution
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 characters
Problem
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.