У меня есть JSON файл, который содержит строковые ключи, с регулярными строками в качестве значений:
{
"GitHub": "[g|G][i|I][t|T][h|H][u|U][b|B]['|\"][\s]?[:|=]?[\s]?['|\"][0-9a-zA-Z]{35,40}['|\"]"
}
Затем файл читается в Python:
with open(args.rules, "r") as ruleFile:
rules = json.loads(ruleFile.read())
...
К сожалению, я не могу заставить регулярное выражение разобрать правильно. Кажется, я все время зацикливаюсь на том, как мне избежать двойных кавычек в регулярном выражении. Поскольку код в настоящее время написан, интерпретированное регулярное выражение удаляет обратную косую черту sh, которую я использую для экранирования каждой двойной кавычки; Я считаю, что backsla sh экранирует двойные кавычки в JSON (он предназначен только для экранирования двойных кавычек для самого регулярного выражения), что приводит к сбою кода при чтении файла.
Я попытался добавить еще одну обратную косую черту sh, или две, перед двойными кавычками в строке регулярного выражения, однако интерпретированное регулярное выражение не может прочитать, если есть две обратные косые черты, и если у меня их три, то это читает успешно, но сохраняет две обратные косые черты.
С учетом желаемой конечной строки регулярного выражения, как следует обновлять регулярное выражение, чтобы одновременно удовлетворять как синтаксис JSON, так и синтаксис Python?