Как сопоставить один HTML-тег со специальным SRC? - PullRequest
0 голосов
/ 06 ноября 2019

мой регулярный адрес в сети: https://regex101.com/r/JSPy5Z/1

Я хочу заменить <link rel="stylesheet" href="/dist/abcd.css" /> с использованием abcd.css содержимого пустой строкой.

input: <link ref="stylesheet" href="/dist/qwefqwefqwef.css" /><link ref="stylesheet" href="/dist/abcd.css" />

вывод: <link ref="stylesheet" href="/dist/qwefqwefqwef.css" />

enter image description here

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Используйте следующее регулярное выражение для сопоставления, затем замените его пустой строкой:

<link[^>]*href="\S*abcd\.css"[\s\S]*\/>

Два основных изменения:

  1. Ваш [^>]был неуместен. Теперь он захватывает только один тег link.
  2. В этом случае группа захвата не требуется, поэтому я удалил ее.

Демо

0 голосов
/ 06 ноября 2019

Я изменил ref s в ваших ссылках на rel s, что является правильным именем атрибута. Если я понимаю, что вы пытаетесь сделать, это должно сработать для вас.

const
  links = `<link rel="stylesheet" href="/dist/qwefqwefqwef.css" /><link rel="stylesheet" href="/dist/abcd.css" />`,
  content = `abcd`, // set this to whatever you want to filter out
  re = RegExp(String.raw`<link rel="[^"]*" href="[^"]*?${content}\.css" />`);

console.log(`regular expression: ${re}`);
console.log(`output: ${links.replace(re, ``)}`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...