string[] sa =
{ "12345 {unit}", "12345{unit}", "-123.45{unit}","-1,023.45{unit}",
"12345 cm", "99%", "99.1 %", "0.1234{unit}","-0.1234{unit}",
"12345", "123.45", "12,345.67 {unit}"
};
foreach (string s in sa) {
Console.WriteLine("Numeric=[" + Regex.Replace(s, @"[^\d]+$", "") + "], Unit=[" + Regex.Match(s, @"[^\d]+$") + "]");
}
私のロジックは、値の後ろにあるnoneの数字だけを検出することです。フロントとミドルのマイナス記号( - )、カンマ、ドットはそのまま残ります。
この汎用ロジックを使用して、値のみまたは単なる値を削除することができます。
Numeric=[12345], Unit=[ {unit}]
Numeric=[12345], Unit=[{unit}]
Numeric=[-123.45], Unit=[{unit}]
Numeric=[-1,023.45], Unit=[{unit}]
Numeric=[12345], Unit=[ cm]
Numeric=[99], Unit=[%]
Numeric=[99.1], Unit=[ %]
Numeric=[0.1234], Unit=[{unit}]
Numeric=[-0.1234], Unit=[{unit}]
Numeric=[12345], Unit=[]
Numeric=[123.45], Unit=[]
Numeric=[12,345.67], Unit=[ {unit}]
シンプルな\ d +仕事ですか? – Douglas