Я пытаюсь заменить все несоответствующими символам в одной строке между определенными столбцами (после поиска).Заменить все несоответствующие символы между определенными столбцами
Пример:
Поиск может быть все
В приведенном ниже примере поиска = test
заменителя характер, не являющихся символами согласующих: пустое пространство.
Я хочу заменить все символы, не входящие в «test
» между столбцами 10 и 30.
Столбцы 10 и 30 обозначены |
before: djd<aj.testjal.kjetestjaja testlala ratesttsuvtesta !<-a-
| |
after: djd<aj.test test testlala ratesttsuvtesta !<-a-
Как я могу реализовать это?
я не доказал это себе, но я не думаю, что вы можете сделать это с помощью регулярных выражений в одиночку. Чтобы исключить первые 10 символов, вам придется сопоставлять их с ними каким-то образом ... после того, как вы это сделаете, они станут подходящими для вашей замены. Я думаю, что вам лучше разделить строку на три части, выполняя подстановку, а затем присоединяясь к этим частям ... но я хотел бы, чтобы меня оправдали. –
Иногда 10 символов иногда больше или меньше символов. Как бы вы разделили строку на 3 части и снова собрали их? – Reman
Если бы я был строго в vim, я бы просто добавил строку, где хотел разбить строку, сделать замену, а затем снова присоединиться к строке. Если бы это было что-то, что я собирался делать на регулярной основе, я бы создал макрос, который будет делать замену и присоединяться к строкам (обязательно удалив посторонние пробелы после объединения). Мне нравится метод Бернхарда, но я никогда не пробовал. –