I have two strings which contains the following substrings: myStringA and myStringBB; and a dictionary d which maps A and BB to some other values, lets say d["A"] = "X" and d["BB"] = "YY". I want to replace both of these strings by the following strings:
ThisIsMyStringX and ThisIsMyStringYY;. So that I want to replace A and BB (which are known for me) by the values from dictionary and leave ; if present at the end and add ThisIs and the beginning. How can I achieve that?
CodePudding user response:
You can use regex match-groups to achieve these replacements (a Match group is a Part of an regex encapsulated by brackets). For example:
import re
regex=re.compile("foo(bar)")
match = regex.match("foobar")
print(match.group(1))
will print "bar".
Here ist a working programm that solves your specific Problem:
import re
dict = {
"A": "X",
"BB": "YY"
}
myStringA = "myStringA"
myStringBB = "myStringBB"
regex = re.compile("my(\w )(A|BB)")
match = regex.match(myStringA)
print("ThisIsMy" match.group(1)
dict[match.group(2)])
match = regex.match(myStringBB)
print("ThisIsMy" match.group(1)
dict[match.group(2)])
