繁体   English   中英

如何使用正则表达式从C#中的字符串中提取数字(整数或双精度)和文本

[英]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 numstring unit

new Regex(@"([\d.])([a-zA-Z- -/]+)");

仅当输入具有12m而不是12.m12.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM