Python 正则表达式帮助:)?

Python regex help :)?

我正在尝试匹配字符串 'onlin' 中的最后一个字母,如果它与离线单词匹配,则将其替换。没有运气。请指教,干杯

import mitmproxy
import re

def response(flow):
    old = b'Onlin\w{1}'
    new = b'Offline'
    flow.response.content = flow.response.content.replace(old, new)

我猜你用错了替换函数。试试 re.sub.

def response(flow):
    old = b'Onlin\w'
    new = b'Offline'
    # https://docs.python.org/3/library/re.html#re.sub
    flow.response.content = re.sub(old, new, flow.response.content)

str.replace() 不识别正则表达式。

要使用正则表达式执行替换,请使用 re.sub()。

模式Onlin. 匹配任何以Onlin 开头并以任何字符结尾的字符串。

import re

old = re.compile('Onlin.')

def response(flow):
    new = 'Offline'
    flow.response.content = old.sub(new, flow.response.content)

示例:

>>> old = re.compile("Onlin.")
>>> old.sub(new, "Onlin Onlina Online")
'offlineoffline offline'