Я хотел бы добавить строку (не заменить) на основе n-го вхождения нескольких строк.
Пример:
tablespecs = "lcdrcl"
Теперь предположим, что я хочу добавить третье появление l, c и r строки "здесь: ", желаемый результат должен быть:
требуемый_таблицы =" lcd здесь: rcl "
Таким образом, рассматривая только l, c и r, игнорируя d.
Я подошел настолько близко, как показано ниже, вместо добавления кода код заменяет совпадение, поэтому он выдает «lcd here: cl».
tablespecs = "l c d r c l"
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.end():]
newString = before + wanted + after
return newString
#Source of code chunk https://stackoverflow.com/questions/35091557/replace-nth-occurrence-of-substring-in-string
replacenth(tablespecs, "[lcr]", "[here:]", 3)
#wrong_output: 'l c d [here:] c l'