Use a repeat loop, add the stripped text of each line to a list variable, join the list with text item delimiters and put the result on the clipboard.
set theText to "2017-12-14 - AMEX - December - Groceries
2017-12-17 - AMEX - December - Fuel
2017-12-19 - AMEX - December - Leisure
2018-01-04 - AMEX - January - Fuel
2018-01-06 - AMEX - January - Cinema
2018-01-09 - AMEX - January - Hardware"
set theResult to {}
repeat with oneLine in (get paragraphs of theText)
set end of theResult to text 21 thru -1 of oneLine
end repeat
set {TID, text item delimiters} to {text item delimiters, return}
set the clipboard to theResult as text
set text item delimiters to TID
…so I modified the script a little (copied a section from another script and pasted it into this one) to replace ’ - ’ with ': ’
set theText to the clipboard
set AppleScript's text item delimiters to " - "
set newText to every text item of theText
set AppleScript's text item delimiters to ": "
set theText to newText as text
set AppleScript's text item delimiters to ""
set theResult to {}
repeat with oneLine in (get paragraphs of theText)
set end of theResult to text 19 thru -1 of oneLine
end repeat
set {TID, text item delimiters} to {text item delimiters, return}
set the clipboard to theResult as text
set text item delimiters to TID
It works OK, but is that the ‘correct/elegant’ way to do it, or should it somehow be included in the repeating part of the script?