私は選択的置換を行おうとしているので、文字列内のすべてを置き換えますが、[ & ] の間の文字は置き換えません。
たとえば、入力文字列が「yyyy[m]mm」の場合、すべての m を大文字に置き換えたい ([ & ] の間のものを除く)。結果は yyyy[m]MM になるはずです。
何か案は?
ありがとう。
少なくともあなたの例では、これでうまくいきます。否定後読みと否定先読みを使用してm
、括弧で囲まれていないのみに一致します。orでは機能しますが、 では機能し[mm]
ません。[mmm]
[mmdd]
Regex.Replace("yyyy[m]mm", @"(?<!\[)m(?!\])", "M")