2024-10-02 14:17:57 发布
网友
我知道有一种方法可以替换所有匹配某种模式的实例,比如:re.sub(r'x', 'y', string)。你知道吗
re.sub(r'x', 'y', string)
但是有没有办法用字典中最后一个字符的值来替换所有实例,比如#a、#b?你知道吗
#a
#b
dict = {'a': '1', 'b': 2', ... }
所以abc#bcd#ae变成abc2cd1e等等。你知道吗
abc#bcd#ae
abc2cd1e
可以替换字符串中找到的所有匹配项:
mydict = {'a':'1', 'b':'2'} mystr = '#a#b' for k, v in mydict.items(): mystr = mystr.replace('#' + k, v)
如果你知道你想要替换的东西,你不需要正则表达式。当你在寻找模式的时候,这些更重要,而不是精确的匹配。字符串.替换应该是这样的。你知道吗
string = "a#acbb#bd" dictionary = {'a':'1', 'b':'2'} newstring1 = string.replace('#a', dictionary['a']) newstring = newstring1.replace('#b', dictionary['b']) print(newstring) >>>a1cbb2d
re.sub(任何匹配项的替换)的第二个参数可以是可调用的。如果是这样,则为每个匹配使用一个参数match对象调用它,并将其结果替换为字符串。所以你可以这样做:
re.sub
d = {'a': 'A', 'b': 'B'} s = '#a #b and #c' def replace_it(m): return d.get(m.group('key'), m.group(0)) print re.sub('#(?P<key>[a-zA-Z]+)', replace_it, s)
可以替换字符串中找到的所有匹配项:
如果你知道你想要替换的东西,你不需要正则表达式。当你在寻找模式的时候,这些更重要,而不是精确的匹配。字符串.替换应该是这样的。你知道吗
re.sub
(任何匹配项的替换)的第二个参数可以是可调用的。如果是这样,则为每个匹配使用一个参数match对象调用它,并将其结果替换为字符串。所以你可以这样做:相关问题 更多 >
编程相关推荐