-1

我有以下代码:

    content = Regex.Replace(content, "{%Pwd%}", pwd ?? "");

如果 pwd 为空,我希望它被替换为 "" 但它仍然将它作为空值拉入。无论如何,我可以解决这个问题。另外为什么它没有按预期工作?

4

2 回答 2

2

首先,我将这条线分成两部分:

string replacement = pwd ?? "";
content = Regex.Replace(content, "{%Pwd%}", replacement);
  • 的价值是replacement多少?
  • 内容是否被替换"null"

我猜它会"null"或者""好像替换nullArgumentNullException被抛出。

我还会检查这{%Pwd%}是正确的正则表达式 - 因为Expresso无法识别它,它很可能需要转义某些字符。没有content我们只能猜测。

如果您检查这些事情,答案应该会变得显而易见。

于 2012-06-28T17:26:05.030 回答
1

改用它,因为{}在 Regex 中具有特殊含义:

content = Regex.Replace(content, "\{%Pwd%\}", pwd ?? "");

你需要摆脱你的花括号。

编辑:显然这在正则表达式中并不重要,但无论如何逃跑都不会受到伤害。

于 2012-06-28T17:33:16.573 回答