У меня есть JSON-файл, где я хранить отображение, которое содержит регулярные выражения, как те ниже:Python: чтение регэксп из JSON
"F(\\d)": "field-\\\\1",
"FLR[ ]*(\\w)": "floor-\\\\1",
Чтобы соответствовать стандарту убегает обратный слэш, то на самом деле регулярные выражения должны содержат \d
, \w
и \\1
.
После того, как я прочитал этот JSON с помощью json.load(), мне все равно нужно отправить обработанный результирующий словарь, чтобы получить правильные регулярные выражения. Мне нужно заменить \\
на \
. Каков наилучший способ этого?
До сих пор я пробовал как re.sub()
, так и str.replace()
, и в обоих случаях неясно, как представить одиночную обратную косую черту на подстанции.
Например, я не понимаю, почему следующее не производит один обратный слэш:
In [76]: "\\\\d".replace("\\\\", "\\")
Out[76]: '\\d'
Это * делает * производит одиночную обратную косую черту. Вот как это отображается, чтобы было ясно, что это буквальная обратная косая черта, а не escape-символ. – jonrsharpe