У меня есть файл, содержащий регулярные выражения в стиле perl вида /pattern/replace/
, который я пытаюсь прочитать в Python как список скомпилированных шаблонов и связанных с ними строк замены. Ниже то, что я сделал до сих пор.
def get_regex(filename):
regex = []
fi = open(filename,'r')
text = [l for l in fi.readlines() if not l.startswith("#")]
fi.close()
for line in text:
ptn, repl = line[1:].split('/')[:-1]
regex.append((re.compile(ptn), repl))
return regex
Это прекрасно работает, пока я не получу строки с экранированными косыми чертами, например:
/$/ <\\/a>/
Когда я пытаюсь разбить эту строку, Python возвращает список из трех элементов, ['$', ' <\\', 's>']
, а не (как ожидается) ['$', ' <\\/s>']
. Есть ли способ заставить replace
интерпретировать побеги?