我想要一个简单的方法来在字符串中查找模式并对其进行修改
我有一个多行文本,我想修改所有双引号(“)的值
例如,双引号之间只有字符,我想在其ascii值中添加5并修改字母
def printChar(char):
x = ord(char)
x += 5
return(chr(x))
这样,如果我有“ a”,我想放“ f”,我该如何做一个替换,让我放一个中间函数?
答案 0 :(得分:1)
使用正则表达式和lambda。正则表达式可能需要进行一些调整。现在,它在双引号之间至少需要一个字符(否则第一个将被忽略),并且双引号之间的字符必须是字母数字。
import re
t = 'This is "ABCD" or "EFGH"'
re.sub(r'"[A-Za-z0-9]+"', lambda x: ''.join(chr(ord(c)+5) for c in x.group(0)), t)
输出
"This is 'FGHI' or 'JKLM'"