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 回答