[英]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.