-4

Как я могу получить:

blablabla x/11/1048.1 blablabla blablabla
x/11/i blablabla
blablablax/11/a
 blablabla x/11/b.2 blablabla blablabla blablabla

становиться:

x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y

3 ответа3

2

Вот способ пойти:

  • Ctrl+H
  • Найти что: ^.*?(x/[^/]+/\S+).*$
  • Заменить на: $1.full.y
  • Заменить все

Объяснение:

^               : begining of line
.*?             : 0 or more any character, not greedy
(               : start group 1
  x             : literally x
  /             : literally /
  [^/]+         : 1 or more any character that is not /
  /             : literally /
  \S+           : 1 or more character that is not a space
)               : end group 1
.*              : 0 or more any character
$               : end of line
  • НЕ ПРОВЕРИТЬ . matches newline

Замена:

$1.full.y       : content of group 1 followed by .full.y

Результат для данного примера:

x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y
0

Так что у тебя есть

blablabla x/11/1048.1 blablabla blablabla
x/11/i blablabla
blablablax/11/a
 blablabla x/11/b.2 blablabla blablabla blablabla

Неважно, что это за текст.

найти .*(x/[^/]*/[^/\s\b]*[\s\b]).*

заменить на \1

Часть в круглых скобках находки, это ваш х / б ..../ ... шаблон, который вы хотите сохранить.

дает

x/11/1048.1 
x/11/i 
x/11/a
x/11/b.2 

Я считаю, что у некоторых из них есть пробелы после них, что может быть недостатком моего регулярного выражения, но это не имеет значения, мы можем найти пространство в конце строки и удалить его.

найти: (\r?\n) <- то есть найти пробел, за которым следует разделитель строки или разделитель строки, \r \n или \n, и заменить его только разделителем строки или разделителем строки. Мы удалим пространство из этого.

заменить на: \1

x/11/1048.1 
x/11/i 
x/11/a
x/11/b.2 

И это находит каждую строку, которая начинается с x/ и «захватывает», и заменяет ее на себя, после чего следует .full.y

найти: (^x/.*$)
заменить на \1.full.y

x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y
0

Мы просто добавляем .full.y в конец строки, после того, как переместим последовательности blablabla .

Сначала выполните замену поиска, которая удаляет все экземпляры «blablabla» (с вариантами для удаления лишних пробелов).

Затем используйте регулярные выражения, так как $ означает "конец строки":

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .