In your regex, you have excluded the spaces from being matched (and you haven't used Regex.Replace()
which I had overlooked completely...):
result = Regex.Replace("Hello there(hello#)", @"[^A-Za-z0-9]+", "");
should work. The +
makes the regex a bit more efficient by matching more than one consecutive non-alphanumeric character at once instead of one by one.
If you want to keep non-ASCII letters/digits, too, use the following regex:
@"[^p{L}p{N}]+"
which leaves
BonjourmesélèvesGutenMorgenliebeSchüler
instead of
BonjourmeslvesGutenMorgenliebeSchler
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…