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