Условие нахождения японских символов

Рейтинг: 0Ответов: 1Опубликовано: 12.01.2023

В наличии имеется парсер веб страницы. Он находит конкретный текст и записывает его в текст бокс. Но нужно задать условие, при котором при наличии в тексте японских символов (иероглифов), то этот текст нужно пропускать, всю строку. Строка не обязательно будет полностью японской, может быть пару английских букв или цифр а потом японские. Следовательно нужно как то искать в строке японские символы игнорируя английские буквы и цифры. И при нахождении игнорировать эту строку.

Как бы это можно было сделать? Я вообще не представляю с чего начать.

Пример кода

        async Task DownloadFromURL(string url, Action<AngleSharp.Dom.IDocument> document_action)
    {
        var config = Configuration.Default.WithDefaultLoader();
        var context = BrowsingContext.New(config);

        var document = await context.OpenAsync(url);

        document_action(document);

        EngNameTextBox.Text = h1.TextContent;
    }

Ответы

▲ 0

Кажется нашел решение. Нагуглил что [\u2E80-\u9FFF] соответствует всем восточноазиатским языкам, не только японскому. Дальше нужно просто подсчитать сколько всего таких символов в строке, и ничего не делать, или очищать текстБокс если попадется хотя бы один японский символ.

        var h1 = html_obj.QuerySelector("h1");

        Regex reg = new Regex(".*[\u2E80-\u9FFF].*");
        MatchCollection match = reg.Matches(h1.TextContent);

        if (((byte)match.Count) > 0)
        {
            EngNameTextBox.Text = "";
        }
        else
        {
            EngNameTextBox.Text = h1.TextContent;
        }

Или может можно сделать это короче?