Замена текста с помощью выражения Regex в Notepad ++ - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь внести следующие изменения в большое количество файлов с помощью Блокнота ++.

Перед заменой у меня есть следующий текст

<img src ="wsg://iDSGFQ">
<img src ="wsg://iSTACK">
<img src ="wsg://iOVERFLOW">

После замены я хочу получить следующеерезультат

<img src ="http://localhost/images/DSGFQ.jpg">
<img src ="http://localhost/images/STACK.jpg">
<img src ="http://localhost/images/OVERFLOW.jpg">

Какое выражение Regex я могу использовать для преобразования моего текста?

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Если DSGSQ является частью, которая является переменной в вашем вопросе (см. Мой комментарий ниже вопроса),

возможное регулярное выражение:

Найти:

(<img src ="wsg://i)([^"]*)(">)

Заменить:

<img src ="http://localhost/images/$2.jpg">
0 голосов
/ 25 января 2019

Вы можете попробовать следующий шаблон: (<img.+src ?=")[^/]+\/([^"]+) и шаблон замены: (\1)http:\/\/localhost\/images(\2).

Обратите внимание, что http:\/\/localhost\/images заштриховано. Кроме того, (\ 1) означает замену первой группы захвата и аналогично (\ 2) означает замену второй группы захвата.

Объяснение модели:

(<img.+src ?=") соответствует <img и любым символам до src, соответствует src, за которым следуют 0 или 1 пробел * и знак равенства с двойной кавычкой, сохраняются в первой группе захвата.

[^/]+ - соответствует одному или нескольким символам до \, они соответствуют одному \ с \/, наконец ([^"]+) соответствует одному или нескольким символам, отличным от двойных кавычек, и сохраняет его во второй группе захвата.

0 голосов
/ 25 января 2019

Для вашего точного примера, вы можете сделать это:

Find: (<img src =")[^"]*(">)
Replace : $1http://localhost/images/DSGFQ.jpg$2

Объясните:

 - (<img src =") is Group capture to $1
 - [^"]* is the link we want to replace with
 - (">) is Group capture to $2

Поскольку это HTML, возможно, вы захотите добавить дополнительное пространство, например:

<img   src =   "wsg://iDSGFQ"  >

Вы можете заменить вышеуказанный код следующим:

Find: (<img\s+src\s+=\s+")[^"]*("\s+>)
Replace : $1http://localhost/images/DSGFQ.jpg$2

Где \ s + это пробел (больше нуля)

...