私は基本的にこれを持っています:
Regex rx = new Regex(@"\$(?:(\$)|(\{(?<ex>.*?)\}))");
string s = "${P#(n*8+1)!=0$$P}${P#(n*8+1)!=0$N/A$[n*8+1]}";
Match m = rx.Match(s, 0);
最初の一致は"${P#(n*8+1)!=0$N/A$[n*8+1]}"
、あるべきとき"${P#(n*8+1)!=0$$P}"
です。最初の の前に余分なスペースを入れると、正常に'$'
機能します。