繁体   English   中英

C#正则表达式不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM