0

我有一个通过删除 html 来修改的数据表。在 html 条带期间,如果遇到或<br>,则将其替换为。我正在将 html strip 进程的实例记录到文本文件中,并且格式在日志中看起来很好(所有 CRLF 都被保留)。但是,当在数据表上调用更新方法并将数据发送到数据库时,CRLF 字符都消失了。<p><li>System.Environment.NewLine

代码片段:

public static class HtmlStripper
{
    static Regex _htmlRegex = new Regex("<.*?>", RegexOptions.Compiled);
    static Regex _liRegex = new Regex("<li>", RegexOptions.Compiled);
    static Regex _brRegex = new Regex("<(br)?(BR)?\\s?/?>\\s*", RegexOptions.Compiled);
    static Regex _pRegex = new Regex("</?[phPH].*?>\\s*", RegexOptions.Compiled);

    public static string StripTagsRegexCompiled(string source)
    {
        string noPorH = _pRegex.Replace(source, System.Environment.NewLine);
        string noBr = _brRegex.Replace(noPorH, System.Environment.NewLine);
        string noLi = _liRegex.Replace(noBr, System.Environment.NewLine + "t- ");
        return _htmlRegex.Replace(noLi, string.Empty);
    }

}
4

1 回答 1

0

SSMS 删除了数据网格中的 CRLF - 但是它们仍然存在于数据库中。您可以通过按CTRL-Twhich 将结果转换为 TEXT 而不是在 GRID 中来证明这一点。然后您可以按CTRL-D返回以将结果保存在 GRID 中。

您可以使用以下方法进行测试:

SELECT  'Not' + CHAR(10) + CHAR(13) + 'Together'

首先通过在 GRID 中显示结果:

(No Column name)
Not  Together

然后在 TEXT 结果中:

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

-------------
Not

Together

(1 row(s) affected)


SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
于 2012-05-24T18:45:20.713 回答