Попробуй это
Первый поворот на регулярные выражения
https://regex101.com/r/aW4gG2/2
Найти: (\$\d+)(.*Take ')(.*)(')
Заменить: \1\2\1\4
Захватить
В этом выражении есть четыре группы
Вход: $250 'Hello 1' Take '____'
Группа 1
(\$d+)
= $250
- здесь говорится, что начинаются с символа $ (экранированный, чтобы быть буквальным), а затем цифры (\d
) 1 или более, поэтому он останавливается на последней цифре, 3 или 15. В вашем примере они были в начале строки, но я этого не предполагаю. Однако, если они НАЧИНАЮТ строку, то вы можете добавить ^
делая это ^(\Sd+)
Группа 2
(.*Take ')
= 'Hello 1' Take '
- это выражение говорит .*
что означает любой символ любое количество раз, поэтому он берет все, пока не увидит Take
а затем он берет Take '
потому что я написал это и остановился на этом.
Группа 3
(.*)
= - ____
это занимает внутреннее пространство, в основном это занимает 0 или более раз. В данном случае это все подчеркивание, но написано, что оно захватит все, что у вас есть. Было бы захватить все до конца строк, за исключением того, что у меня есть что-то следующее, которое говорит ему, когда остановиться
Группа 4
(')
= - '
это говорит группе 3 остановиться на отметке '
. он также фиксирует '
в своей собственной группе для перегруппировки.
подмена
\1\2\1\4
Группы нумеруются из открытых скобок, но в этом случае все является линейным без вложенности, так что это довольно очевидно. \1\2\3\4
оставил бы все как есть. Но мы хотим заменить третью группу первой, так что ... \1\2\1\4
делает свое дело. Одним из ключевых моментов здесь было убедиться, что мы захватили эту четвертую группу, чтобы заменить ее в конце. Помимо этого ничего сложного.
выполнение
Так что просто установите это в вашей находке замены, а затем нажмите заменить все, и это должно исправить вас.
редактировать
Я заметил, что вы хотели удалить $ в вашей замене, поэтому вам нужно внести небольшие изменения в мои первоначальные предложения, хотя в основном это то же самое.
Вход: $250 'Hello 1' Take '____'
Найти: (\$)(\d+)(.*Take ')(.*)(')
Заменить: \1\2\3\2\5