re = /(?<name>.+)
(?<date>.+)
Lat=\s*(?<lat>-?\d+\.\d*)\s*Lon=\s*(?<lon>-?\d+\.\d*)
(?<dep>.+)
(?<dt>.+)
Moment Tensor: Expo=\d+\s*(?<cmt>.+)
.+
.+
(?<faultPlane>.+strike=(?<strike>-?\d+\.?\d*)\s*dip=(?<dip>-?\d+\.?\d*)\s*slip=(?<slip>-?\d+\.?\d*))/m
str = '010176A KERMADEC ISLANDS REGION
Date: 1976/ 1/ 1 Centroid Time: 1:29:53.4 GMT
Lat= -29.25 Lon=-176.96
Depth= 47.8 Half duration= 9.4
Centroid time minus hypocenter time: 13.8
Moment Tensor: Expo=26 7.680 0.090 -7.770 1.390 4.520 -3.260
Mw = 7.3 mb = 6.2 Ms = 0.0 Scalar Moment = 9.56e+26
Fault plane: strike=202 dip=30 slip=93
Fault plane: strike=18 dip=60 slip=88
010576A PERU
Date: 1976/ 1/ 5 Centroid Time: 2:31:44.7 GMT
Lat= -13.42 Lon= -75.14
Depth= 85.4 Half duration= 1.6
Centroid time minus hypocenter time: 8.4
Moment Tensor: Expo=24 -1.780 -0.590 2.370 -1.280 1.970 -2.900
Mw = 5.7 mb = 6.0 Ms = 0.0 Scalar Moment = 3.79e+24
Fault plane: strike=350 dip=28 slip=-60
Fault plane: strike=137 dip=66 slip=-105
010676A OFF EAST COAST OF KAMCHA
Date: 1976/ 1/ 6 Centroid Time: 21: 8:25.1 GMT
Lat= 51.45 Lon= 159.50
Depth= 15.0 Half duration= 2.8
Centroid time minus hypocenter time: 5.8
Moment Tensor: Expo=25 1.100 -0.300 -0.800 1.050 1.240 -0.560
Mw = 6.1 mb = 5.7 Ms = 6.0 Scalar Moment = 1.98e+25
Fault plane: strike=206 dip=18 slip=78
Fault plane: strike=39 dip=73 slip=94
010976A VANUATU ISLANDS
Date: 1976/ 1/ 9 Centroid Time: 23:54:40.1 GMT
Lat= -15.97 Lon= 167.81
Depth=173.7 Half duration= 3.5
Centroid time minus hypocenter time: 4.5
Moment Tensor: Expo=25 -1.700 2.290 -0.590 -2.330 -1.230 2.010
Mw = 6.3 mb = 6.1 Ms = 0.0 Scalar Moment = 3.64e+25
Fault plane: strike=246 dip=22 slip=-86
Fault plane: strike=62 dip=68 slip=-91
011376A ICELAND REGION
Date: 1976/ 1/13 Centroid Time: 13:29:24.9 GMT
Lat= 66.33 Lon= -16.29
Depth= 15.0 Half duration= 3.4
Centroid time minus hypocenter time: 5.4
Moment Tensor: Expo=25 -0.510 -2.860 3.370 0.050 -0.780 -0.860
Mw = 6.3 mb = 6.0 Ms = 6.4 Scalar Moment = 3.3e+25
Fault plane: strike=127 dip=82 slip=173
Fault plane: strike=218 dip=83 slip=9
011476A KERMADEC ISLANDS
Date: 1976/ 1/14 Centroid Time: 15:56: 7.5 GMT
Lat= -29.69 Lon=-177.04
Depth= 46.7 Half duration=20.0
Centroid time minus hypocenter time: 32.6
Moment Tensor: Expo=27 4.780 -0.490 -4.300 0.830 3.620 -1.320
Mw = 7.8 mb = 6.3 Ms = 0.0 Scalar Moment = 6.02e+27
Fault plane: strike=200 dip=26 slip=95
Fault plane: strike=15 dip=64 slip=88
011476B KERMADEC ISLANDS REGION
Date: 1976/ 1/14 Centroid Time: 16:47:44.8 GMT
Lat= -28.72 Lon=-176.75
Depth= 17.7 Half duration=20.5
Centroid time minus hypocenter time: 11.3
Moment Tensor: Expo=27 2.560 0.180 -2.740 3.580 6.770 -1.230
Mw = 7.9 mb = 6.5 Ms = 8.0 Scalar Moment = 8.18e+27
Fault plane: strike=189 dip=11 slip=71
Fault plane: strike=28 dip=80 slip=93
011476C KERMADEC ISLANDS REGION
Date: 1976/ 1/14 Centroid Time: 22:43:50.7 GMT
Lat= -28.61 Lon=-176.62
Depth= 15.0 Half duration= 3.7
Centroid time minus hypocenter time: 7.6
Moment Tensor: Expo=25 2.340 0.240 -2.580 0.620 3.710 -0.680
Mw = 6.4 mb = 5.5 Ms = 6.3 Scalar Moment = 4.54e+25
Fault plane: strike=197 dip=17 slip=97
Fault plane: strike=10 dip=73 slip=88
011576A KERMADEC ISLANDS REGION
Date: 1976/ 1/15 Centroid Time: 6: 6:51.9 GMT
Lat= -30.25 Lon=-176.63
Depth= 15.0 Half duration= 2.8
Centroid time minus hypocenter time: 5.8
Moment Tensor: Expo=25 1.440 0.060 -1.500 0.300 1.180 -0.460
Mw = 6.1 mb = 5.3 Ms = 6.2 Scalar Moment = 1.96e+25
Fault plane: strike=196 dip=26 slip=91
Fault plane: strike=15 dip=64 slip=89'
subst = '\\n%% ${name}\\n% ${date}\\n% ${dep}\\n% ${dt}\\n% ${faultPlane}\\nFP = [${strike}, ${dip}, ${slip}];\\nCMT = [${cmt}];\\nLat = ${lat}; Lon = ${lon};\\nbb(CMT, Lon, Lat, dia, 1, \'r\');\\n'
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