2

我在 SQL 数据库中有我的正则表达式

例如:^[AZ Ñ\s\.\,\\"\%]+$

然后,我用 SQL 阅读器得到它

sql.Reader["Regular_Expression"].ToString()

但是,返回以下内容: "^[AZ Ñ\\s\\.\\,\\\\"\\%]+$"

任何人都知道如何避免使用 .ToString() 函数来更改字符串,例如使用 @ 时。

4

2 回答 2

1

要解决它,您必须使用 Regex 库中的 Regex.Unescape() 函数。

该问题是由于从对象到字符串的错误转换造成的。

于 2013-06-14T18:05:06.787 回答
1

我认为你实际上被这里的工具误导了。当您在 Visual Studio 的 Watch 窗口中查看结果时,它会以与常规引号字符串相同的方式转义显示中的任何字符,因此您会得到双反斜杠。如果您实际上将它输出到某个地方,例如使用 System.Diagnostics.Debug.WriteLine,您不应该看到双反斜杠。

当您通过 SqlDataReader 的 indexer 属性访问列时,返回类型为object. 那是因为它在编译时不知道它是什么类型。如果列是字符串类型(例如varchar),则返回的对象将是一个SqlString结构,您可以将其强制转换为string而不是调用ToString.

于 2013-06-11T22:55:24.027 回答