簡體   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