У меня есть XML, как файл с тегами, как:Заменить все слэш по обратной косой черты в пределах указанного тега для пути к файлу
<id>SomeID</id>
<datasource>C:/projects/my_project/my_file.jpg</datasource>
<title>My title can include/and other characters</title>
<abstract></abstract>
Я хочу изменить все косые черты в обратную косую черту, но только в пределах тега источника данных (в пределах открытия и закрытия тег).
Каков общий синтаксис регулярного выражения для этого? UPDATE: я, наконец, добрался до первого рабочего раствора с питоном:
regex_01 = re.compile(".*<datasource>")
regex_02 = re.compile("</datasource>.*")
file_content = ""
for line in source_file.readlines():
if "<datasource>" in line:
start = regex_01.search(line).group()
end = regex_02.search(line).group()
part_to_replace = line.replace(start,"").replace(end,"")
replaced = part_to_replace.replace("/","\\")
file_content = file_content + start + replaced.strip() + end + "\n"
else:
file_content = file_content + line
Не могли бы вы предложить что-то более элегантное?
Можете ли вы использовать '(* SKIP) (* FAIL)' - на каком языке? (только для Perl, PCRE и Python) – antoni
@antoni Я начал тестировать в блокноте ++, но, я думаю, это не удастся сделать это там, поэтому я учусь для решения в ** python ** – Miro