正则替换
A=["sheet1!a2:a5","sheet1!a3:d5","sheet1"]把sheet1 替换成sheet2但是 前面有中括号的 不替换 使用正则 import re
pattern = re.compile(r"(?<!\])sheet1")
A=["sheet1!a2:a5","sheet1!a3:d5","sheet1"]
res = list(map(lambda x: pattern.sub("sheet2", x), A))
print(res) 使用反向否定预查,查找关键字时,判断左侧是否不为某字符。如果不是,匹配。如果是,不匹配。
import re
str_1 = 'A=["sheet1!a2:a5","sheet1!a3:d5","sheet1"]'
str_2 = re.sub(r'(?<!\])sheet1', r'sheet2', str_1, flags=re.IGNORECASE)
print(str_2)
isdkz 发表于 2024-8-20 15:30
(?<!\]) 这里为什么要添加小括号呢小括号不是表示分组吗 wp231957 发表于 2024-8-21 09:06
(?
断言也是要用括号的,括号里面以 ? 开头的有特殊作用,例如 ?: 表示不捕获分组,?= 、?! 、?<=、?<! 都是断言
这些断言又分别是 前向、负向 与 肯定、否定的组合,你可以去了解一下断言
页:
[1]