-1

私は次のコードを持っています:

    content = Regex.Replace(content, "{%Pwd%}", pwd ?? "");

pwdがnullの場合、 ""に置き換えられると思いますが、それでもnullとしてプルされます。とにかく、私はこれを修正することができます。また、なぜ期待どおりに機能しないのですか?

4

2 に答える 2

2

まず、この行を2つに分割します。

string replacement = pwd ?? "";
content = Regex.Replace(content, "{%Pwd%}", replacement);
  • の価値はreplacement何ですか?
  • コンテンツは置き換えられてい"null"ますか?

私はそれがそうなる"null"か、または""交換が投げられるかのように推測しています。nullArgumentNullException

また、それが正しい正規表現であることも確認し{%Pwd%}ます。Expressoはそれを認識しないため、特定の文字をエスケープする必要がある場合があります。推測contentすることしかできません。

これらをチェックすると、答えが明らかになるはずです。

于 2012-06-28T17:26:05.030 に答える
1

{}正規表現では特別な意味があるため、代わりにこれを使用してください。

content = Regex.Replace(content, "\{%Pwd%\}", pwd ?? "");

中括弧をエスケープする必要がありました。

編集:どうやらそれは正規表現では問題ではありませんが、とにかく逃げることは決して痛いことではありません。

于 2012-06-28T17:33:16.573 に答える