我有以下代码:
content = Regex.Replace(content, "{%Pwd%}", pwd ?? "");
如果 pwd 为空,我希望它被替换为 "" 但它仍然将它作为空值拉入。无论如何,我可以解决这个问题。另外为什么它没有按预期工作?
首先,我将这条线分成两部分:
string replacement = pwd ?? "";
content = Regex.Replace(content, "{%Pwd%}", replacement);
replacement
多少?"null"
?我猜它会"null"
或者""
好像替换null
会ArgumentNullException
被抛出。
我还会检查这{%Pwd%}
是正确的正则表达式 - 因为Expresso无法识别它,它很可能需要转义某些字符。没有content
我们只能猜测。
如果您检查这些事情,答案应该会变得显而易见。
改用它,因为{}
在 Regex 中具有特殊含义:
content = Regex.Replace(content, "\{%Pwd%\}", pwd ?? "");
你需要摆脱你的花括号。
编辑:显然这在正则表达式中并不重要,但无论如何逃跑都不会受到伤害。