我有一个像"-23.45m/abc = 53.02m/s"的字符串,我想分开.你认为在.net中有一个简单的方法来获得-23.45(就像使用内置的浮点解释器一样)并告诉我其余的字符串从'm'开始.
在C++中我会用
double num;
wchar_t* input_text = L"-23.45m / abc = 53.02m/s";
if (swscanf(input_text, L"%lf%n", &num, &count) == EOF)
return false;
pos += count;
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式来匹配开头的double值.您需要考虑要支持的内容.例如,您想支持所有这些:
您还应该考虑要解析的文化 - "1,000"可以表示"一千"或"一点零零",具体取决于您的文化.
一旦你的规范被确定下来,编写一个正则表达式应该不会太难.这将使您在一次捕获中匹配double值,在另一次捕获中匹配其余字符串.