[英]c# Regex not working
我有以下代码:
content = Regex.Replace(content, "{%Pwd%}", pwd ?? "");
如果pwd为null,我希望将其替换为“”,但仍会将其拉为null。 无论如何,我可以解决这个问题。 还有为什么它没有按预期工作?
首先,我将这一行分为两部分:
string replacement = pwd ?? "";
content = Regex.Replace(content, "{%Pwd%}", replacement);
replacement
的价值是什么? "null"
? 我猜测它将是"null"
或""
,就好像替换为null
会引发ArgumentNullException
。
我还要检查{%Pwd%}
是正确的正则表达式-因为Expresso无法识别它,所以它可能需要转义某些字符。 没有content
我们只能猜测。
如果您检查这些事情,答案应该显而易见。
由于{}
在正则表达式中有特殊含义,请改用此方法:
content = Regex.Replace(content, "\{%Pwd%\}", pwd ?? "");
您需要避开花括号。
编辑:显然,这在正则表达式中无关紧要,但是无论如何逃脱都不会造成伤害。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.