Добавление фразы в конец каждого вхождения в коде Visual Studio с использованием Regex начинается с, не заканчивается и не содержит специального знака - PullRequest
0 голосов
/ 07 декабря 2018

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

Начинается с href=", не содержит . и не заканчивается /

Совпадения

href="blah/foo"
href="foo"

Не совпадает

href="blah/foo.css"
href="blah/foo.ico"
href="blah/foo."
href="blah/"
href="blah/foo.css/"

Я пытался построить что-то подобное (href=\")^((?!.).)|(?!.*\/$)*$, но яЯ застрял на данный момент.

Я также хочу иметь возможность добавлять фразу в конце каждого вхождения.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы можете использовать

Найти : (href=")([^".]*[^"./])(") Заменить : $1$2.html$3

См. Демоверсию regex

Подробности

  • (href=") - группа 1 ($1): href=" подстрока
  • ([^".]*[^"./]) - группа 2 ($2): любые 0+ символов, кроме " и ., за которыми следует любой символно ", . и /
  • (") - Группа 3 ($3): " char.

Тест в VS Code:

enter image description here

0 голосов
/ 07 декабря 2018

Вы можете попробовать этот помощник

href="[^.\s]+?(?!\.)[^\/.]"$

Объяснение

  • href=" - будет точно соответствовать href=".
  • [^.\s]+? - будет соответствовать чему угодно, кроме . и пробелам один или несколько раз (ленивый режим).
  • (?!\.) - отрицательный взгляд вперед.Проверяет ..
  • [^\/.]$ - Проверки конца строки не должны содержать / или .

Демо

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