re = /^(\d+)\s+(\d+)\s+\d+\s+\w+\s+\S+\s+(\S+)\s+(\S+)\s+(\S+\s\S+)\s(\S+\s\S+).*$/m
str = '1 100 1 REAL_REWARD ANNOUNCEMENT,NEED_CONTACT 80013:1 50001:90 2020-09-28 10:00:00 2020-09-29 03:59:59 胸针 80002 640 栗雄坐姿玩偶 0
2 100 1 REAL_REWARD ANNOUNCEMENT,NEED_CONTACT 80006:1 50001:460 2020-09-28 10:00:00 2020-09-29 03:59:59 毛毯披肩 80003 640 紫咪小鹰坐姿玩偶 0
3 100 1 REAL_REWARD ANNOUNCEMENT,NEED_CONTACT 80005:1 50001:640 2020-09-28 10:00:00 2020-09-29 03:59:59 嘟嘟河马坐姿玩偶 80004 640 爱逗蛙坐姿玩偶 0 '
subst = ' <packageMeta packageId="\\1" remark=""> <sum>\\2</sum> <limit>1</limit> <discount>1</discount> <type>REAL_REWARD</type> <showTypes class="java.util.ArrayList"> <showType>ANNOUNCEMENT</showType> <showType>NEED_CONTACT</showType> </showTypes> <items>\\3</items> <cost>\\4</cost> <startTime>\\5</startTime> <endTime>\\6</endTime> <usingPlatform class="java.util.ArrayList"> <string/> </usingPlatform> <excludePlatform class="java.util.ArrayList"> <string/> </excludePlatform> <extra/> </packageMeta> '
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