【问题标题】:Best way to process non-standard quotes in XML parser [duplicate]在 XML 解析器中处理非标准引号的最佳方法 [重复]
【发布时间】:2013-06-05 07:09:33
【问题描述】:

我正在创建一个处理具有 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)。提前致谢!

【问题讨论】:

    标签: c# regex xml-parsing quote


    【解决方案1】:

    \p{Pi}\p{Pf} 类可以用于匹配这种引号。但是它们并没有区分单引号和双引号。

    \p{Pi} -> 开场白

    \p{Pf} -> 结束引号

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 2010-09-16
      • 2010-11-13
      • 2018-01-17
      • 1970-01-01
      • 2019-01-06
      • 2014-09-02
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多