Regex: заменить пробелы в файле, но нацелить только на определенный тег (href) - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу изменить пробелы в файле, но только внутри тега href = "".Оставшийся файл не должен быть затронут.Есть ли способ сделать это непосредственно в регулярном выражении, скажем, Visual Studio Studio или Sublime или любой другой редактор по вашему выбору

<li><a target="_blank" href="/img/closed-sales/Anderson Ocn Club
2010.pdf" rel="noopener noreferrer">Anderson Ocean Club 2010</a></li>
<li><a target="_blank" href="/img/closed-sales/Anderson ceanClub 2011.pdf" rel="noopener noreferrer">Anderson</a></li>

Я пробовал href="/.*", который в основном соответствует href = "", но янеобходимо заменить пробелы и другие символы, такие как @, войдите в него. Fiddle

1 Ответ

0 голосов
/ 12 февраля 2019

В Notepad ++ или SublimeText вы можете использовать конструкцию \G для сопоставления подстрок, начиная с конца предыдущего совпадения, тем самым ограничивая поиск и заменяя определенную часть текста между различными разделителями.В вашем случае значения атрибутов заключены в ", поэтому вы можете использовать

(?:\G(?!^)|href="/)[^\s"]*\K\s

и заменять на любые необходимые вам символы.Если \K не поддерживается, используйте

(\G(?!^)|href="/)([^\s"]*)\s

и замените на $1$2[some new text].Разница между этим и предыдущими шаблонами заключается в том, что текст, соответствующий (\G(?!^)|href="/) и ([^\s"]*), также захватывается в группу, а $1 и $2 являются соответствующими заполнителями (пронумерованные обратные ссылки ), которые относятся к текстам, захваченным с помощью этих групп захвата .

В Visual Studio вместо этого можно использовать (?<=href="/[^"]*?)\s.

См. this regex demo .

Подробности

  • (?:\G(?!^)|href="/) - начало предыдущего матча или href="/подстрока
  • [^\s"]* - 0 или более символов, отличных от " и пробелов
  • \K - оператор сброса совпадений, который удаляет весь сопоставленный текст из буфера совпадений
  • \s - символ пробела.

Sublime Text 3 (Windows):

enter image description here

Блокнот ++:

enter image description here

Visual Studio:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...