re = /^(drv:\d+)(?:[\s\S]+?(?:Name|Serial|Port):.*$){3}\n\h*(\[[^\]]+?])/m
str = 'HDClone 6 Enterprise Edition
Serial: 1111111111
Miray Software AG
Gaissacher Str. 18
81371 Munich
Germany
Detecting drives.
drv:0 Name: WDC WD40EZRZ-00WN9B0 (4,000,754 MB)
Serial: WD-WCC4E0ESU7YK
Port: 0/1/1/0
[ -, M:, X: ]
To specify this drive, use the following parameters:
-srcdrv:/-dstdrv:0
-srcdrvn:/-dstdrvn:"WDC WD40EZRZ-00WN9B0"
-srcdrvn:/-dstdrvn:"WDC WD40EZRZ-00WN9B0WD-WCC4E0ESU7YK"
-srvdrvp:/-dstdrvp:0/1/1/0
drv:1 Name: ST2000DM001-1CH164 (2,000,399 MB)
Serial: S1E1GA0V
Port: 0/1/1/1
[ S:, T: ]
To specify this drive, use the following parameters:
-srcdrv:/-dstdrv:1
-srcdrvn:/-dstdrvn:ST2000DM001-1CH164
-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GA0V
-srvdrvp:/-dstdrvp:0/1/1/1
drv:2 Name: ST2000DM001-1CH164 (2,000,399 MB)
Serial: S1E1GC0Z
Port: 0/0/0/1
[ B:, P: ]
To specify this drive, use the following parameters:
-srcdrv:/-dstdrv:2
-srcdrvn:/-dstdrvn:ST2000DM001-1CH164
-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GC0Z
-srvdrvp:/-dstdrvp:0/0/0/1
drv:3 Name: WDC WD10EADS-11M2B2 (1,000,205 MB)
Serial: WD-WCAV5D430071
Port: 0/0/2/0
[ -, V: ]
To specify this drive, use the following parameters:
-srcdrv:/-dstdrv:3
-srcdrvn:/-dstdrvn:"WDC WD10EADS-11M2B2"
-srcdrvn:/-dstdrvn:"WDC WD10EADS-11M2B2WD-WCAV5D430071"
-srvdrvp:/-dstdrvp:0/0/2/0
drv:4 Name: KINGSTON SMS200S360G (60,023 MB)
Serial: 50026B72440A6EE7
Port: 0/1/3/0
[ C: ]
To specify this drive, use the following parameters:
-srcdrv:/-dstdrv:4
-srcdrvn:/-dstdrvn:"KINGSTON SMS200S360G"
-srcdrvn:/-dstdrvn:"KINGSTON SMS200S360G50026B72440A6EE7"
-srvdrvp:/-dstdrvp:0/1/3/0'
subst = ''
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