在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是List
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上工作,任何英文网站的一切都运转良好。
答案 0 :(得分:4)
您可以使用\p{L}
代替[a-zA-Z]
来匹配所有字母或[\p{IsHebrew}a-zA-Z]
中的所有字母,以便更具体。