Здесь есть 2 проблемы.Одной из них является проблема вложенного контента или поиска совпадений, которые охватывают границу элемента.Другой - экранированные символы HTML.
Один из способов обработки экранированных символов HTML, если вы используете, например, jQuery, - использовать метод .text()
и запустить поиск по нему.Текст, который возвращается из этого, уже содержит экранированные символы, «переведенные» в их реальный символ.
Другой способ обработки этих специальных символов - заменить фактический символ (в строке поиска) на экранированную версию.,Однако, поскольку существует широкий спектр возможностей, это может быть длительный поиск в зависимости от реализации.
Такой же «текстовый» метод может использоваться для поиска соответствий контента, которые охватывают границы сущностей.Это становится сложнее, потому что «Текст» не имеет никакого представления о том, откуда берутся фактические части контента, но дает вам меньший домен для поиска, если вы углубляетесь. Как только вы приблизитесь, вы можете переключиться наскорее поиск по «серии символов», а не поиск по словам.
Однако я не знаю ни одной библиотеки, которая бы делала это.