gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:49 25 4
gpt4 key购买 nike

我正在尝试在 C# 中构建一个小的单位转换,但我遇到了一个问题。我在网上看了几个例子,但我没有申请

Example text input:
12m
12 m
12.4m
.5m
12.m

我想string numstring unit

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

只有当输入有int比如12m而不是12.m12.4m...

我可以解决在输入文本中包含 . 但现在输入必须有 . ,小数部分也会发生。

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

虽然我可以做多种可能的情况来处理不同的输入格式,但代码看起来很糟糕。感谢您的帮助。

最佳答案

你可以使用

(\d*\.?\d+|\d+\.?\d*)\s*([a-z]+)

参见 regex demo

详情

  • ( - 捕获组 1 的开始:
    • \d*\.?\d+ - 0+ digits,一个可选的.,1+ digits
    • | - 或
    • \d+\.?\d* - 1+ digits,一个可选的.,0+ digits
  • ) - 捕获组 1 结束
  • \s* - 0+ 个空格
  • ([a-z]+) - 捕获第 2 组:一个或多个小写字母。

关于c# - 如何使用正则表达式从 C# 中的字符串中提取数字(整数或 double )和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54961836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com