私は次のコードを持っています:
content = Regex.Replace(content, "{%Pwd%}", pwd ?? "");
pwdがnullの場合、 ""に置き換えられると思いますが、それでもnullとしてプルされます。とにかく、私はこれを修正することができます。また、なぜ期待どおりに機能しないのですか?
まず、この行を2つに分割します。
string replacement = pwd ?? "";
content = Regex.Replace(content, "{%Pwd%}", replacement);
replacement何ですか?"null"ますか?私はそれがそうなる"null"か、または""交換が投げられるかのように推測しています。nullArgumentNullException
また、それが正しい正規表現であることも確認し{%Pwd%}ます。Expressoはそれを認識しないため、特定の文字をエスケープする必要がある場合があります。推測contentすることしかできません。
これらをチェックすると、答えが明らかになるはずです。
{}正規表現では特別な意味があるため、代わりにこれを使用してください。
content = Regex.Replace(content, "\{%Pwd%\}", pwd ?? "");
中括弧をエスケープする必要がありました。
編集:どうやらそれは正規表現では問題ではありませんが、とにかく逃げることは決して痛いことではありません。