Regex не соответствует Unicode - PullRequest
2 голосов
/ 29 марта 2010

Как мне использовать Regex для сопоставления строк Unicode? Я загружаю пару ключевых слов из текстового файла и использую их с Regex для другого файла. Оба ключевых слова содержат Unicode (например, á и т. Д.). Я не уверен, где проблема. Есть ли какая-то опция, которую я должен установить?


Код:

foreach (string currWord in _keywordList)
{
    MatchCollection mCount = Regex.Matches(
        nSearch.InnerHtml, "\\b" + @currWord + "\\b", RegexOptions.IgnoreCase);

    if (mCount.Count > 0)
    {
        wordFound.Add(currWord);
        MessageBox.Show(@currWord, mCount.ToString());
    }
}

И чтение ключевых слов в список:

var rdComp = new StreamReader(opnDiag.FileName);
string compSplit = rdComp.ReadToEnd()
                         .Replace("\r\n", "\n")
                         .Replace("\n\r", "\n");
rdComp.Dispose();
string[] compList = compSplit.Split(new[] {'\n'});

Затем я изменяю массив на список.

Ответы [ 2 ]

1 голос
/ 29 марта 2010

При сопоставлении с определенным символом, я считаю, что регулярные выражения поддерживают только литералы для набора символов ASCII. Кроме того, вы можете использовать \ uxxxx для сопоставления с кодовой точкой Unicode.

См. здесь .

0 голосов
/ 18 ноября 2014

Вы можете использовать [\ u0000- \ uffff] + для соответствия как минимум BMP

...