Мы будем использовать регулярные выражения для поиска и замены данных в вашем текстовом файле.
Регулярные выражения ищут шаблоны в какой-либо форме данных. Данные могут быть файлом HTML, файлом слов (при условии, что вы знаете, как извлечь текст) или, в вашем случае, обычным текстовым файлом. Чтобы реализовать регулярное выражение, вам нужно использовать специальные символы для обозначения определенных функций шаблона. Функция findall имеет следующий вид:
re.findall(pattern,string)
Например, если вы хотите найти все слова «лестница» в документе, вы должны написать
re.findall("staircase",text)
где «лестница»"это шаблон, а текст это строка. Программа будет возвращать все экземпляры «лестница» в виде массива в тексте, который вы использовали в качестве ввода. Но что, если вы хотите также включить прописные версии лестницы, то есть «Лестница», предположив, что это было в начале предложения, например? В этом случае вы должны использовать специальные символы, о которых я говорил ранее: вместо этого вы должны написать следующий шаблон
re.findall("(S|s)taircase",text)
The |метасимвол означает либо контент слева, либо контент справа. Также обратите внимание, как скобки используются для группировки элементов, что часто встречается в регулярных выражениях. Таким образом, регулярное выражение ищет одну из следующих строк: «Лестница» или «лестница». Некоторые другие важные метасимволы в регулярных выражениях:
"\ w" соответствует любому символу "слова", поэтому "a", "b", "C" и "D" будут сопоставляться с этим метасимволом.
«\ W» соответствует любому несловесному символу, поэтому «1», «2», «>», «?» И «=» будут совпадать с этим метасимволом.
"\ s" соответствует любому символу пробела.
"\ S" соответствует любому символу без пробела.
"\ d" соответствует всем символам цифры, 0-9.
"\ D" соответствует любому нецифровому символу.
В дополнение к предыдущим метасимволам есть квантификаторы *, +,?, {N}, {min,} и{мин Макс}. Вот краткое описание этих метасимволов:
"*" соответствует нулю или более экземпляров предыдущего элемента.
"+" соответствует одному или нескольким вхождениям предыдущего элемента.
"?"соответствует нулю или одному вхождению предыдущего элемента.
"{n}" соответствует ровно n вхождений предыдущего элемента.
"{min,}" соответствует по меньшей мере минимальным вхождениям предыдущегоelement.
"{min, max}" совпадает между min и max вхождений предыдущего элемента (включая min и max).
Итак, чтобы дать пример того, что мы рассмотрели такДалее приведен пример шаблона с использованием группировки, символа или, квантификатора и метасимвола.
re.findall("(A|a)pple\d*",text)
Регулярное выражение будет находить все следующие подстроки: "Apple", "apple",«Apple0», «apple0», «Apple00», «apple00» и т. Д.
Теперь, когда мы познакомились с регулярными выражениями, мы можем приступить к написанию кода для решения вашей проблемы. используя Python.
import re
textFile = open(pathToTextFile,"r")
rawText = textFile.read()
textFile.close()
tags = ["<code>","</code>"]
count = 0
output = ""
for line in rawText.split("\n"):
if "```" in line:
output+=re.sub("```",tags[count%2],line)+"\n"
count+=1
else:
output+=line+"/n"
outFile = open(pathToOutFile,"w")
outFile.write(output)
outFile.close()
Если на вашем компьютере установлен Python, откройте IDLE и создайте новый файл. Откроется новое окно. Здесь вы пишете свои команды.
Первое, что нам нужно сделать, это импортировать пакет с именем re, который является модулем, используемым для регулярных выражений. Затем мы загружаем текстовый файл (вставляем ваш путь), читаем его содержимое и закрываем текстовый файл.
Затем мы определяем массив с именем тегов, который содержит два тега, которые мы будем использовать для замены трех кавычек. целое число с именем count, определяющее, какой тег будет добавлен, и пустая выходная строка.
Затем мы выполняем итерацию в каждой новой строке переменной rawText и всякий раз, когда видим тройные кавычки, мы заменяем одну изтеги, а затем обновите переменную count. В противном случае мы просто добавляем строку и переходим к следующему элементу цикла for.
Наконец, мы создаем новый файл для записи (вставляем ваш путь), записываем строку вывода и закрываем файл. И мы сделали! Выходные данные показаны ниже.
<code>
Default:
Publisher Bid Modifier Object with values=[]
</code>
<td>
<code>
Publisher Bid Modifier Object
</code>
</td>
Refs: https://en.wikipedia.org/wiki/Regular_expression;