[英]How to extract a number (integer or double) and text from a string in C# with regular expression
我正在尝试在C#中建立一个小的单位转换,并且我正在解决一个问题。 我查看了互联网上的一些示例,但未能申请
Example text input:
12m
12 m
12.4m
.5m
12.m
我想string num
和string unit
new Regex(@"([\d.])([a-zA-Z- -/]+)");
仅当输入具有12m
而不是12.m
或12.4m...
int
这才给我结果12.4m...
我可以解决这个问题.
在输入文本中,但现在输入必须具有.
,也发生在小数部分。
new Regex(@"([\d.][.][\d.])([a-zA-Z- -/]+)");
尽管我可以做多种可能的情况来处理不同的输入格式,但是代码看起来很糟糕。 任何帮助表示赞赏。
您可以使用
(\d*\.?\d+|\d+\.?\d*)\s*([a-z]+)
细节
(
-捕获组1的开始:
\\d*\\.?\\d+
-0 \\d*\\.?\\d+
位数字,可选.
,1个以上的数字 |
- 要么 \\d+\\.?\\d*
-1+位数字,可选.
,0位数以上 )
-捕获组1的结尾 \\s*
-0+空格 ([az]+)
-捕获组2:一个或多个小写字母。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.