If I understand correctly, your users can send messages to each other and you're worried that if they send a message with personal information in it that information might be too visible.
I guess that you're therefore trying to remove this information from the message's preview (but still have it available if you open the message?).
If this is the case then you can have a really sloppy regular expression removing anything that looks even a little bit like a number or email. It doesn't matter if you hide non-personal information because the non-censored version of the message is always available.
I would go with something like this (untested):
# Take any string that contains an @ symbol and replace it with ...
# The @ symbol must be surrounded by at least one character on both sides
$message = preg_replace('/[^ ]+@[^ ]+/','...',$message); # for emails
# Take any string that contains only numbers, spaces and dashes, replace with ...
# Can optionally have a + before it.
$message = preg_replace('/\+?[0-9\- ]+/','...',$message); # for phone numbers
This is going to match lots of things, more than just emails and phone numbers. It may also not match emails and phone numbers that I didn't think of, this is one of the problems with writing regular expressions for these kinds of things.