解析测量单位

Sch*_*ini 3 c# regex parsing

我有以下字符串:

string value = "123.456L";
Run Code Online (Sandbox Code Playgroud)

将此字符串解析为字符串和double的最佳方法是什么:

double number = 123.456;
string measure = "L"
Run Code Online (Sandbox Code Playgroud)

取而代之的是升,我们还可以有其他的东西,比如oz,m/s,liter,kilograms,等

das*_*ght 8

假设度量单位始终表示为字符串后面的单个字符,您可以这样做:

string value = "123.456L";
var pos = value.LastIndexOfAny("0123456789".ToCharArray());
double number = double.Parse(value.Substring(0, pos+1));
string measure = value.Substring(pos+1);
Run Code Online (Sandbox Code Playgroud)


Yur*_*ich 5

基于解释输入的注释,我使用正则表达式.

double number = double.Parse(Regex.Match(value, @"[\d.]+").Value);
string measure = value.Replace(number.ToString(), "");
Run Code Online (Sandbox Code Playgroud)

正则表达式[\d.]匹配的任何数量或.,在+意味着它必须是1个或多个匹配.