Как заменить слово в html, только если некоторые условия выполняются с помощью регулярного выражения - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь заменить каждое вхождение слова в тексте (который является html-файлом) и все вокруг, пока мы не встретим " или ' или ( для позади или ) длявперед с помощью регулярного выражения, используя nodejs.

Моя проблема в том, что когда мне нужно заменить два слова, скажем, 3.png и 13.png, 13.png тоже заменяется на совпадение 3.png, и когда я заменяю 13.png в моемtext его там нет, потому что он уже был заменен при совпадении с предыдущим 3.png.

Мое идеальное решение было бы:

if совпавший шаблон содержит /

then, он должен точно соответствовать после / и заменить все вокруг (косая черта), пока мы не встретим одного из этих символов (исключая) " или ' или ( за спиной или )

else точное совпадение между "" или '' или ()


Вы можете найти здесь regex101 пример

В настоящее время я сортирую свои слова для поиска следующим образом:

  imgjson.sort((a, b) => b.name.length - a.name.length);

для того, чтобы сначала заменить самые длинные слова, что решает мою проблему, потому что мы заменяем сначала 13.png, затем 3.png, но я хотел бы знать, можно ли это сделать с помощью js regex?

Большое спасибо за ваш ответ и время!

1 Ответ

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

Как @PushpeshKumarRajwanshi сказал использовать \b.

Если вы хотите быть более точным и информированным о регулярных выражениях, вы можете использовать https://regex101.com/. В правом нижнем углу вы можете найти все специальные символыи функции регулярного выражения вам может понадобиться.

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