# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^(drv:\d+)(?:[\s\S]+?(?:Name|Serial|Port):.*$){3}\n\h*(\[[^\]]+?])"
test_str = ("HDClone 6 Enterprise Edition\n"
"Serial: 1111111111\n\n"
"Miray Software AG\n"
"Gaissacher Str. 18\n"
"81371 Munich\n"
"Germany\n\n"
"Detecting drives.\n"
"drv:0 Name: WDC WD40EZRZ-00WN9B0 (4,000,754 MB)\n"
" Serial: WD-WCC4E0ESU7YK\n"
" Port: 0/1/1/0\n"
" [ -, M:, X: ]\n"
"To specify this drive, use the following parameters:\n"
"-srcdrv:/-dstdrv:0\n"
"-srcdrvn:/-dstdrvn:\"WDC WD40EZRZ-00WN9B0\"\n"
"-srcdrvn:/-dstdrvn:\"WDC WD40EZRZ-00WN9B0WD-WCC4E0ESU7YK\"\n"
"-srvdrvp:/-dstdrvp:0/1/1/0\n\n"
"drv:1 Name: ST2000DM001-1CH164 (2,000,399 MB)\n"
" Serial: S1E1GA0V\n"
" Port: 0/1/1/1\n"
" [ S:, T: ]\n"
"To specify this drive, use the following parameters:\n"
"-srcdrv:/-dstdrv:1\n"
"-srcdrvn:/-dstdrvn:ST2000DM001-1CH164\n"
"-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GA0V\n"
"-srvdrvp:/-dstdrvp:0/1/1/1\n\n"
"drv:2 Name: ST2000DM001-1CH164 (2,000,399 MB)\n"
" Serial: S1E1GC0Z\n"
" Port: 0/0/0/1\n"
" [ B:, P: ]\n"
"To specify this drive, use the following parameters:\n"
"-srcdrv:/-dstdrv:2\n"
"-srcdrvn:/-dstdrvn:ST2000DM001-1CH164\n"
"-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GC0Z\n"
"-srvdrvp:/-dstdrvp:0/0/0/1\n\n"
"drv:3 Name: WDC WD10EADS-11M2B2 (1,000,205 MB)\n"
" Serial: WD-WCAV5D430071\n"
" Port: 0/0/2/0\n"
" [ -, V: ]\n"
"To specify this drive, use the following parameters:\n"
"-srcdrv:/-dstdrv:3\n"
"-srcdrvn:/-dstdrvn:\"WDC WD10EADS-11M2B2\"\n"
"-srcdrvn:/-dstdrvn:\"WDC WD10EADS-11M2B2WD-WCAV5D430071\"\n"
"-srvdrvp:/-dstdrvp:0/0/2/0\n\n"
"drv:4 Name: KINGSTON SMS200S360G (60,023 MB)\n"
" Serial: 50026B72440A6EE7\n"
" Port: 0/1/3/0\n"
" [ C: ]\n"
"To specify this drive, use the following parameters:\n"
"-srcdrv:/-dstdrv:4\n"
"-srcdrvn:/-dstdrvn:\"KINGSTON SMS200S360G\"\n"
"-srcdrvn:/-dstdrvn:\"KINGSTON SMS200S360G50026B72440A6EE7\"\n"
"-srvdrvp:/-dstdrvp:0/1/3/0")
subst = ""
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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 Python, please visit: https://docs.python.org/3/library/re.html