0

これは簡単なテストケースです。基本的なものが欠けているように感じますが、助けていただければ幸いです!

string data = @"Well done UK building industry, Olympics \u00a3377m under budget + boost";
foreach (Match m in Regex.Matches(data, @"\\u(\w*)\b"))
{
    Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
    string match = m.Value;
    // These should output the exact same thing however the first is a £ and the other is \u00a3377m
    Console.WriteLine("\u00a3377m" + "      " + match);
}
4

3 に答える 3

0

00A3文字のユニコードです£http://unicode-table.com/en/#00A3をご覧ください

したがって、" と書こうとすると\u00a3377m"通常の文字列リテラルは になります£377m

次のように、代わりに逐語的な文字列リテラルを使用します。

Console.WriteLine(@"\u00a3377m" + "      " + match);

私は実際に£記号が欲しかったという質問に追加するのを完全に忘れていました

char c = '\u00a3';
string s = c.ToString(); // s will be £
于 2013-07-26T10:02:55.043 に答える
0

印刷している文字列を手動でエスケープするのを忘れました。したがって、特殊文字 '\u00a3377m' は直接解決されます。

以下は必要に応じて機能します。

// These should output the exact same thing however the first is a £ and the other is \u00a3377m
            Console.WriteLine("\\u00a3377m" + "      " + match);

別のオプションは、@ を使用することです:

Console.WriteLine(@"\u00a3377m" + "      " + match);
于 2013-07-26T09:46:57.457 に答える