c# - 如何获取匹配正则表达式(c#)的字符串的一部分?
问题描述
我有一些字符串,如“8 2 / 5”、“5 5/ 7”等,包含数学分数。我需要将它们转换为双打。那么,我怎样才能将这些部分“8”“2 / 5”放入变量中?
var src = " 8 2 / 5";
string base = getBase(src);
string frac = getFrac(src);
// Now base must contain "8" and frac "2/5";
我不知道是否有些东西可以做这个“分数到双倍”的任务已经存在(如果有,请提供链接或其他东西),但如果我可以将这些部分放入变量中,我将能够执行除法至少还有一个补充。
解决方案
简单操作:在RegexStorm上测试的正则表达式
String src = " 8 2 / 5";
String Regex = @"([1-9])([0-9]*)([ ])([1-9])([0-9]*)((.)([0-9]+)|)([ ])([- / + *]){1}([ ])([1-9])([0-9]*)((.)([0-9]+)|)";
if(!Regex.IsMatch(src , Regex ))
return;
float Base = float.Parse(Base.Split(" ")[0], CultureInfo.InvariantCulture.NumberFormat);
float Devided= float.Parse(Base.Split(" ")[1], CultureInfo.InvariantCulture.NumberFormat);
float Operator= float.Parse(Base.Split(" ")[2], CultureInfo.InvariantCulture.NumberFormat);
float Denominator= float.Parse(Base.Split(" ")[3], CultureInfo.InvariantCulture.NumberFormat);
//TODO your operation here
推荐阅读
- android - Firestore 从不同的文档中获取价值
- python - python:如何同时监听鼠标点击和按键
- python - Pandas 数据框:根据另一列中的值操作列(不迭代行)
- cmake - 如何告诉 CMake 在哪里可以找到库的目录?
- amazon-web-services - AWS CloudFormation 中的嵌套堆栈没有改变
- c - 动态分配结构指针数组
- javascript - 如何阻止按钮向下滚动到联系表格?
- xslt - 使用 XSL 模板更改基于 CDATA 的 XML 格式
- javascript - Ember JS: Call component action from another component
- microsoft-graph-security - 使用 Graph Security API 将 Azure 安全数据拉入 Power BI Desktop:如何在 Azure AD 中设置权限