You do not need the "|" characters within your regex character class (the stuff within the square brackets). Also, rather than trying to think of every possible character that you want to replace, it might be simpler to use a negated character class of just the allowable values, such as:
preg_replace('/[^a-zA-Z0-9]/', '', $find);
Lastly, I just want to point out that you aren't really validating, but rather altering the user's input. "Validating" would imply that you're checking for invalid inputs, and if you find any you raise an error and return to the form to let the user edit the input.