Based off GWLlosa's idea, I was able to come up with the supremely ugly, but working:
string s = "cat!";
s = s.ToCharArray().ToList()
.Where(x => !char.IsPunctuation(x))
.Aggregate(string.Empty, new Func(
delegate(string s, char c) { return s + c; }));