Как извлечь часть строки и добавить ее в конец строки в VIM с regex?

У меня есть файл со многими URL в форме:

http://www.edu-factory.org/wp/about/

Я хотел бы извлечь sitehost URL и добавить его в конец строки:

http://www.edu-factory.org/wp/about/ www.edu-factory.org

Какая-либо идея, как сделать это?

1
задан 28.02.2011, 13:39

1 ответ

Один способ сделать это:

:s:\(.*//\)\([^/]*\)\(/.*\):\1\2\3 \2:

Объяснение:

  • :s: - Используя замену
  • \(.*//\) - Получите часть до двойной наклонной черты (группа 1)
  • \([^/]*\) - Получите все, что это не наклонная черта (группа 2)
  • \(/.*\) - Получите первую единственную наклонную черту и все после него (группа 3)
  • :\1\2\3 \2: - Выходные группы 1, 2 и 3 сопровождаются пространством и группой 2 снова

Править:

Вы могли sorten что к:

:s:\(.*//\)\([^/]*\)\(/.*\):& \2:

Амперсанд производит целую совпавшую строку, которая включает целую строку, так как regex начинается и заканчивается .*. Вы могли использовать \0 вместо амперсанда.

2
ответ дан 12.12.2019, 12:57

Теги

Похожие вопросы