re = /(^[%@]\tfor\t)(.*[\w\s:]??)(?![→←].*)(\[sound.*)/m
str = '% for 1 <i><font color="#ab0000">British English</font></i> to make something seem less successful, interesting, good etc than it really is: [sound:_p008-000614203.mp3] the pessimists who are talking down Britain →贬低英国的悲观主义者
@ for to talk to someone as if they are stupid, although they are not ←以高人一等的口气对〔某人〕说话; <i><font color="#efefef" style="background-color: rgb(141, 141, 141);">SYN</font></i> patronize: [sound:_p008-000614218.mp3] The students felt that they were talked down to as though they were children. →这些学生感到和他们说话的都是一副居高临下的口气,好像他们是小孩一样。
@ for talk somebody into doing something [sound:_p008-000614234.mp3] My husband talked me into going skiing. →我的丈夫说服我去滑雪。
'
subst = '\\1\\2\\t\\3'
result = str.gsub(re, subst)
# Print the result of the substitution
puts result
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html