Проверить: строка должна содержать только <div>тегов - PullRequest
1 голос
/ 20 мая 2019

Как проверить, если строка содержит любой другой HTML-тег, кроме <div></div>?

Нужно увидеть, содержит ли строка другой элемент DIV или нет.

Каков наилучший способ добиться этого?

Если что-нибудь, чтобы получить этот результат с помощью регулярных выражений, было бы замечательно, но не обязательно подготовить регулярное выражение для проверки этого сценария.

пример допустимой строки:

This is the data received from external <div>data string</div>. string <div>valid string</div>

Недопустимая строка, поскольку она содержит тег HTML, который не <div>:

This is the data received from external <p>data string</p>. string <div>valid string</div>

1 Ответ

2 голосов
/ 20 мая 2019

Вам необходимо установить HtmlAgilityPack с помощью диспетчера пакетов узла Console.

install-package htmlagilitypack

Тогда вы можете использовать это так:

using System.Linq;
using HtmlAgilityPack;

    static void Main(string[] args)
    {
        var validstring =
            "This is the data received from external<div> data string</ div >. string <div>valid string</ div >";
        var invalidstring =
            "This is the data received from external <p>data string</p>. string <div>valid string</div>";

        var b1 = IsStringValid(validstring); // returns true
        var b2 = IsStringValid(invalidstring); // returns false
    }

    static bool IsStringValid(string str)
    {
        var pageDocument = new HtmlDocument(); // Create HtmlDocument
        pageDocument.LoadHtml(str); // Load the string into the Doc

        // check if the descendant nodes only have the names "div" and "#text"
        // "#text" is the name of any descendant that isn't inside a html-tag
        return !pageDocument.DocumentNode.Descendants().Any(node => node.Name != "div" && node.Name != "#text");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...