How about
string input = Console.ReadLine();
var query = Regex.Matches(input, @"\W+|(\w+)")
.Cast<Match>()
.Select(m=>m.Groups[1].Success
? new string(m.Groups[1].Value.Reverse().ToArray())
: m.Value);
Console.WriteLine(string.Join(string.Empty, query));
Cheers
Andi