我如何使用正则表达式从html文件中获取希伯来字符串/单词?

时间:2013-06-27 18:35:07

标签: c# regex

在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上工作,任何英文网站的一切都运转良好。

1 个答案:

答案 0 :(得分:4)

您可以使用\p{L}代替[a-zA-Z]来匹配所有字母或[\p{IsHebrew}a-zA-Z]中的所有字母,以便更具体。