3

XML 形式のテキストを処理するプログラムを作成しています。タグ値が非 ASCII 引用符 (二重引用符 / ASCII 34、単一引用符 / ASCII 39) の場合、解析で例外がスローされることがわかりました。このような引用は、Ms Word (自動書式設定) などの編集ソフトウェアから来る場合があります。

現在、テキスト ボックスの各行を解析し、XML を処理する前に引用符を置き換えています。これがコードです(C#で)

int nLines = textBox1.Lines.Length;

for (int i = 0; i < nLines; i++)
{
    // get the current line and replace quotes with standard ones
    line = Regex.Replace(textBox1.Lines[i], "[\u2018|\u2019|\u201A]", "'");
    line = Regex.Replace(line, "[\u201C|\u201D|\u201E]", "\"");

これを達成するためのより良い/より正確な/より速い方法があるのだろうか? より正確な方法とは、そのような方法が引用符のほとんどすべての可能性をカバーするということです (\d は 0-9 と Unicode に使用できると聞きました)。前もって感謝します!

4

1 に答える 1

0

\p{Pi}クラスは、\p{Pf}この種の引用に一致させるのに役立ちます。ただし、一重引用符と二重引用符の違いはありません。

\p{Pi}-> 冒頭の引用

\p{Pf}-> 引用符を閉じる

于 2013-06-09T16:19:04.080 に答える