Как заменить доменный символ JUST, а не целую строку? - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь заменить длинные URL-адреса новым доменом, который просто идет в корень, но когда я использую подстановочный знак, он заменяет не только URL-адрес, но и код, который пишется после него

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

например, я использовал find: site1.com/.*" replace:site2.com/shop

, но это дает мне site1.com/2018/02/08/best-cannabis-strains-relieve-stress/" rel="canonical" /><meta property="og:locale" и продолжает идти.Как сделать так, чтобы строка подстановки остановилась на FIRST " и не продолжала движение

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Не останавливается на первой кавычке, потому что * является жадным квантификатором.Это значит, что он найдет столько, сколько сможет.

Чтобы сделать его ленивым (то есть остановить как можно скорее), вы можете добавить ? к квантификатору.,То есть: *?

Итак, с учетом этой строки aaabaaab

Это регулярное выражение будет соответствовать:

^.*baaabaaab

^.*?baaab

ПРИМЕЧАНИЕ :

Модификатор Ленивый также работает для других квантификаторов, таких как ?, + и {}

Как прокомментировал другой ответ, еще один способ остановиться на первой цитате с жадным квантификатором - не использовать ., а anything but quote character: [^"]*"

0 голосов
/ 16 апреля 2019

Это должно решить вашу проблему: site1\.com\/[^"]*

[^"] означает: все, кроме цитаты.

Если вы хотите узнать больше, вы должны искать регулярные выражения.

...