0

在 Form1 的顶部,我做了:

private static readonly Regex AnyWordRegex = new Regex(@"((?<word>[a-zA-Z]{4,}))", RegexOptions.Singleline | RegexOptions.Compiled);

在构造函数中我做了:

string file = File.ReadAllText(OriginalHtmlFilePath);
string strippedHtml = StripHtml(file);

本例中的 OriginalHtmlFilePath 包括带有希伯来语单词的 html 文件。

这是 StripHtml :

public static string StripHtml(string htmlString)
        {
            return StripHtmlRegex.Replace(htmlString, @"|");
        }

之后,我看到 strippedHtml 包含希伯来语单词。然后我在构造函数中做:

_words = ExtractWords(strippedHtml);

_words 是列表

private static List<string> ExtractWords(string text)
        {
            MatchCollection matchCollection = AnyWordRegex.Matches(text);
            return (from Match match in matchCollection select match.Groups[1].Value).ToList();
        }

在执行 ExtractWords 之后,我看到 List _words 只包含英文单词。大约608个单词只有英文。但在这种情况下,我正在处理的网站是 www.walla.co.il 或 www.ynet.co.il,这是一个希伯来语网站。

如果我在 cnn.com 或 foxnews.com 上工作,任何英文网站都可以正常工作。

4

1 回答 1

4

您可以使用\p{L}而不是[a-zA-Z]匹配所有字母表中的所有字母或[\p{IsHebrew}a-zA-Z]更具体。

于 2013-06-27T18:38:32.867 回答