Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Regular Expression to remove all characters other than digits and periods

Tags:

regex

php

I'm trying to use preg_replace to remove all characters from a string except for numeric and period characters.

I can remove everything but numbers, however how can I make an exception for the '.' period character.

Can anyone help me out?

like image 917
Dan Avatar asked Jan 20 '10 14:01

Dan


2 Answers

Try this:

$clean = preg_replace('/[^\\d.]+/', '', $str);

But you could also use [^0-9.] if you’re more familiar with that. Note that the . doesn’t need to be escaped inside the character class declaration as it’s not a special character inside there (only ], \ and depending on the context also ^ and -).

like image 128
Gumbo Avatar answered Nov 07 '22 20:11

Gumbo


Remove everything that matches

[^0-9.]

e.g.

$output = preg_replace("/[^0-9.]/", "", $input);
like image 8
Tomalak Avatar answered Nov 07 '22 19:11

Tomalak