Replace letters by their rank, keeping punctuation intact The problem is simple. Given a string such as Hello World! the program would output 8-5-12-12-15 23-15-18-12-4-!. Any delimiters will do, (please specify what they are though) I just chose to use space between words and dashes between characters.
The conversion is that all alphabetical characters will be converted to their numeric equivalent. i.e. A=1,B=2,...,Z=26. All other characters must be kept intact. Case insensitive.
Another example
Here's another example, I hope that this will illustrate my point! If it's unable, more specs will be given.
8-5-18-5-'-19 1-14-15-20-8-5-18 5-24-1-13-16-12-5-, 9 8-15-16-5 20-8-1-20 20-8-9-19 23-9-12-12 9-12-12-21-19-20-18-1-20-5 13-25 16-15-9-14-20-! 9-6 9-20-'-19 21-14-1-2-12-5-, 13-15-18-5 19-16-5-3-19 23-9-12-12 2-5 7-9-22-5-14-.

Note that there are no trailing or starting delimiters between characters.
Scoring will be based on the shortest amount of code. Any language is welcome.
As long as more answers are provided I will change the winner.
GLHF!
Ruby 2.0, 41+1 characters

There, now it complies with the updated rules and makes prettier output.

gsub(/\w+/){$&amp;.chars.map{|c|c.ord&amp;31}*?-}


Run with -p switch:

ruby -p ord.rb &lt;&lt;&lt; "ABC! Defghi, jklmnopqr stuvwxyz"
1-2-3! 4-5-6-7-8-9, 10-11-12-13-14-15-16-17-18 19-20-21-22-23-24-25-26