Yes Yeel, I took your hint from the above message and tried to find and replace with the field calculator. One problem with this method is that the field calculator doesn't handle carriage returns, so I had to use the updateCursor method in the Python console. This post was a big help --> Post <--Essentially, you can only edit multi-line annotations programatically using a Python console. Even though it's pretty straight forward I'm sharing the meat of the code here in case anyone else comes across this post with the same intentions I had:import arcpy
rows = arcpy.UpdateCursor(targetLayer)
trm = textToRemove
trp = textToReplace
for row in rows:
if row.TextString is not None:
if "tr" in row.TextString:
row.setValue('TextString',row.TextString.replace(trm, trp))
rows.updateRow(row)
del row, rows