import re
string = "" "
BeginA
Qwerty
Element 11 35
EndA
BeginB
Element 12 38
...
Element 198 38
EndB
BeginA
Element 81132 38
SomethingElse
EndA
BeginB
Element 12 39
Element 198 38
EndB" ""
block = re.compile ( r'BeginB[\s\S]+?EndB' )
element = re.compile ( r'Element.*?\b 38\b ' )
def repl( match) :
return element.sub ( 'Element ABC' , match.group ( 0 ) )
nstring = block.sub ( repl, string)
print( nstring)
aW1wb3J0IHJlCgpzdHJpbmcgPSAiIiIKQmVnaW5BClF3ZXJ0eQpFbGVtZW50IDExIDM1CkVuZEEKCkJlZ2luQgpFbGVtZW50IDEyIDM4Ci4uLgpFbGVtZW50IDE5OCAzOApFbmRCCgpCZWdpbkEKRWxlbWVudCA4MTEzMiAzOApTb21ldGhpbmdFbHNlCkVuZEEKCkJlZ2luQgpFbGVtZW50IDEyIDM5CkVsZW1lbnQgMTk4IDM4CkVuZEIiIiIKCgpibG9jayA9IHJlLmNvbXBpbGUocidCZWdpbkJbXHNcU10rP0VuZEInKQplbGVtZW50ID0gcmUuY29tcGlsZShyJ0VsZW1lbnQuKj9cYjM4XGInKQoKZGVmIHJlcGwobWF0Y2gpOgoJcmV0dXJuIGVsZW1lbnQuc3ViKCdFbGVtZW50IEFCQycsIG1hdGNoLmdyb3VwKDApKQoKbnN0cmluZyA9IGJsb2NrLnN1YihyZXBsLCBzdHJpbmcpCnByaW50KG5zdHJpbmcp