I\'d like a regexp or other string which can replace everything except alphanumeric chars (a-z
and 0-9
) from a string. All things such as ,@#
This also works to replace anything not a digit, a word character, or a period with an underscore. Useful for filenames.
$clean = preg_replace('/[^\d\w.]+/', '_', $string);
I like using [^[:alnum:]] for this, less room for error.
preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'
/[^a-z0-9.]/
should do the trick
$string = preg_replace("/[^a-z0-9.]+/i", "", $string);
Matches one or more characters not a-z 0-9 [case-insensitive], or "." and replaces with ""
Try:
$string = preg_replace ('/[^a-z0-9]/i', '', $string);
/i stands for case insensitivity (if you need it, of course).