我在 SQL 数据库中有我的正则表达式
例如:^[AZ Ñ\s\.\,\\"\%]+$
然后,我用 SQL 阅读器得到它
sql.Reader["Regular_Expression"].ToString()
但是,返回以下内容: "^[AZ Ñ\\s\\.\\,\\\\"\\%]+$"
任何人都知道如何避免使用 .ToString() 函数来更改字符串,例如使用 @ 时。
要解决它,您必须使用 Regex 库中的 Regex.Unescape() 函数。
该问题是由于从对象到字符串的错误转换造成的。
我认为你实际上被这里的工具误导了。当您在 Visual Studio 的 Watch 窗口中查看结果时,它会以与常规引号字符串相同的方式转义显示中的任何字符,因此您会得到双反斜杠。如果您实际上将它输出到某个地方,例如使用 System.Diagnostics.Debug.WriteLine,您不应该看到双反斜杠。
当您通过 SqlDataReader 的 indexer 属性访问列时,返回类型为object
. 那是因为它在编译时不知道它是什么类型。如果列是字符串类型(例如varchar
),则返回的对象将是一个SqlString
结构,您可以将其强制转换为string
而不是调用ToString
.