У меня есть несколько вариантов строки: "gr_shoulder_r_tmp"
, "r_shoulder_tmp"
мне нужно заменить:регулярное выражение sbustitute только определенная последовательность хит
"r_" к l_, здесь:
"gr_shoulder_r_tmp" > "gr_shoulder_l_tmp"
"r_shoulder_tmp" > "l_shoulder_tmp"
другими словами мне нужно подождать 3-го совпадения в примере frist и 1-го по второму примеру перемешивания
им начал копать себе ... и пришел в halfesolved результат, который носил еще один интересный вопрос:
а) Найти индекс справа ударил
[i for i, x in enumerate(re.findall("(.?)(r_)", "gr_shoulder_r_tmp")) if filter(None, x).__len__() == 1]
, который дает мне indx = 2
) как использовать этот хит индекс: [
в то время как писал я нашел простое решение прямой ..
б) разбивка по подчеркиванием, заменить отдельную букву, и присоединиться обратно
findtag = "r"
newtag = "l"
itemA = "gr_shoulder_r_tmp"
itemB = "r_shoulderr_tmp"
spl_str = itemA.split("_")
hit = spl_str.index(findtag)
spl_str[hit] = newtag
new_item = "_".join(spl_str)
как itemA
, itemB
дает мне то, что мне нужно .. но я не доволен этим, слишком тяжелым и таким грубым
здорово! Ты много Авинаш Радж. Можете ли вы объяснить, что это делает? (? bafly
У меня тоже было заменено, если у меня есть' gr_shoulderr_r_tmp' -rr_ ... о, я плохой .. я забыл удалить^(cap) из письма pattens – bafly
Это называется негативный взгляд на утверждение, как вы можете видеть в [документации] (https://docs.python.org/3.5/library/re.html#regular-expression-syntax). Важно, чтобы вы это поняли, потому что вам может потребоваться настроить условие. –