エクセルの指数表示をLaTeXの数式に変換するアプリケーションを作っています。たとえば、
-1.75E-5 → $-1.75\times10^{-5}$
といった具合です。Regex.Replaceという関数を使って、次のように変換を行いました。
lang
1OutputText = Regex.Replace(InputText, 2@"(?<sign>([+-]?))(?<fra>[0-9]+[.]?[0-9]*)[eE](?<exp>[+-]?[0-9]+)", 3"$" + "${sign}${fra}\times10^{${exp}}" + "$");
ここでInputTextとは元のエクセルからの文字列、OutputTextはLaTeX対応の文字列です。ですが、このコードは上手くいかず、
-1.75E-5 → ${sign}1.75\times10^{-5}$
というふうに、符号のグループ名である{sign}に+または-が代入されず、そのまま出力されてしまっています。そこで、
lang
1OutputText = Regex.Replace(InputText, 2@"(?<sign>([+-]?))(?<fra>[0-9]+[.]?[0-9]*)[eE](?<exp>[+-]?[0-9]+)", 3"$" + "{${sign}}${fra}\times10^{${exp}}" + "$");
というふうに、${sign}を{${sign}}にかえてみたところ、
-1.75E-5 → {-}1.75\times10^{-5}$
となりました。${sign}に+または-が代入されるようにはなりましたが、余計な{}が残ってしまっています。
どうすれば、期待通りに変換を行うことができますでしょうか?お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。