Регулярное выражение для соответствия текста за пределами угловых скобок - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь заменить все указанные c вхождения слов вне угловых скобок.

Например:

Я хочу заменить слово "is" в этой строке:

this is a <sample> string with <some> special words. this <is another> one

Найти все "is" слова вне угловых скобок, ожидаемый результат:

th*is* *is* a <sample> string with <some> special words. this <is another> one

1 Ответ

2 голосов
/ 25 февраля 2020

Вы можете использовать регулярное выражение с отрицательным прогнозом, который проверит, что нет закрытия > после потенциального совпадения, без предшествующего <:

let s = "this is a <sample> string with <some> special words. this <is another> one";

let result = s.replace(/is(?![^<>]*>)/g, "*$&*");

console.log(result);

Обратите внимание, что эта логика также будет соответствовать третьему "есть" в этом логе c.

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