【发布时间】:2016-05-18 22:45:18
【问题描述】:
我正在使用 NCalc.Expression 来评估一个条件,该条件涉及与其中包含单引号的字符串值进行比较。在 NCalc 中,字符串使用单引号而不是双引号来表示。
例如:
[variable1]=='Sample's Data'
为了逃避单引号,我尝试像这样附加一个反冲 -
[variable1]=='Sample\'s Data'
但是当它被分配给一个字符串变量时,它会将反斜杠删除为 -
[variable1]=='Sample's Data'
并且在将 this 分配给 Expression 构造函数之后,它会在评估第二个单引号“s Data”之后的文本时引发错误。
当我尝试如下附加两个反斜杠时 -
[variable1]=='Sample\\'s Data',
this 被赋值给一个字符串变量
"[variable1]=='Sample\'s Data'"
但评估它不会引发异常,但比较失败,因为数据是
"[variable1]=='Sample's Data'"
没有反斜杠。
我该如何解决这个问题?
【问题讨论】:
-
你试过 4
\吗? -
我回答了在表达式中转义引号的可能方法。如果这些不是您要查找的内容,请提供一个最小的、可重现的示例,我们可以将其粘贴到 VS 中并用于帮助解决问题。
标签: c# string expression ncalc