Я надеюсь, что кто-то может помочь мне со следующим.
Предположим, у меня есть следующий текст (точнее - фрагмент кода из латексной таблицы).
- text = "Некоторые & случайные & содержимое \ Некоторые & далее & content \ …. "
Далее, я хотел бы разместить строку внутри текста на основе двух входных факторов, внутри текста, где один указывает строкуна основе \ и другого столбца на основе &.
Так что в случае пары (1,1) строка должна быть помещена до первого вхождения \ и первогопоявление &. (1, 1, «ЗДЕСЬ», текст) в качестве входных данных должен возвращать:
- ЗДЕСЬ некоторые и не цветные & контент \ Некоторые & далее & контент \….
И для (2, 2, «ЗДЕСЬ», текст) должно возвращаться
- Некоторые и не цветные и содержание \ Некоторые & ЗДЕСЬ &содержание \….
В идеале функция также должна принимать несколько пар со входами, поэтому с 1,1 и 2,2 в качестве входа:
- ЗДЕСЬ и нецветной & контент \ Некоторые & ЗДЕСЬ дальнейшие & контент \….
должно быть результатом.
Мой нынешний подход не рассматривает и \ и отличается. и ЗДЕСЬ не появляется спереди.
text = "Some & random & content \\ Some & further & content \\ …. "
def replacenth(string, sub, wanted, n):
pattern = re.compile(sub)
where = [m for m in pattern.finditer(string)][n-1]
before = string[:where.start()]
after = string[where.start():]
newString = before + wanted + after
return newString
replacenth(text, "[&\\+]", "HERE" , 2)
#output:
#'Some & random HERE& content \\ Some & further & content \\ …. '