Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как найти и удалить из текста определенные элементы?

Всем привет!
Необходимо на странице найти и удалить элементы, которые подходят 'под описание': <p>&nbsp;</p>, <p></p>.
Не могу сообразить, в какую сторону вообще копать, пробовал сделать через регулярку, но особо не получилось.

UPD (дополнил вопрос):
На входе имеем: Страницу с текстом.
Что необходимо: Найти на странице <p>&nbsp;</p> и <p></p>, если подобное найдено - удалить эти элементы со страницы.

Подскажите плиз, Спасибо!
  • Вопрос задан
  • 2987 просмотров
Решения вопроса 1
@adrewind
Если хотите регулярками

"<p>&nbsp;</p> sometext <p></p>".replace(/<p>(&nbsp;)?<\/p>/gi, "")


Но в идеале для начала необходимо распарсить HTML код. Затем вы можете искать при помощи css selector'ов или xpath. Если вы делаете это в браузере то юзайте document.querySelectorAll или Document.evaluate соответственно.

Для ваших нужд лучше подойдет xpath, используйте https://scrapinghub.github.io/xpath-playground/ для того чтобы проверить своё выражение перед использованием.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@KnightForce
А точнее?
Могу только сказать что неправильная регулярка.
Понимаю, что не дал точного описание, чтобы найти решения на все случаи.
Но, если тебе нужно удалить все одинаковые элементы, например, из строки "1-2-3-4-5-6-7-8" удалить все тире, то тогда: "1-2-3-4-5-6-7-8".split("-").join("");. Если элементы зависят от чего-то, то:
function removeEl(str, el) {
   str.split(el).join("");
}
removeEl("1-2-3-4-5-6-7-8", "-");


Если условие не однозначное, типа удалить точки или запятые - то регулярное выражение.
var str = "1.2.3.4.5,6,7,8,9";
var newStr = str.replace(/[.,]/g, "");
console.log(newStr); // "123456789"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы