簡體   English   中英

檢測字符串中的十進制數字和字母

[英]Detect decimal number and alphabet in string

我正在寫一個數學應用程序。 如何在c#中檢測字符串中的數字和字母。 例如:

string a = "2x"; // input string
string b = a.Replace("2x","2*x"); // Replace string to add multiplaction sign between a number and variable

它可以是整數或雙精度型數字。

正則表達式替換:

var math = new Regex(@"\d[a-zA-Z]");            
var expr = "-2X-4Z-5Y";
string replaced = math.Replace(expr, m => String.Concat(m.Value[0], '*', m.Value[1]));

輸出

-2*X-4*Z-5*Y

更新

如果系數和變量之間可以有圓括號,請按以下方式更改替換:

var math = new Regex(@"\d(\()*[a-zA-Z]");
var expr = "10+2(X+5(a+b))";
string replaced = math.Replace(expr, 
                  m => String.Concat(m.Value[0], "*", m.Value.Substring(1)));

輸出

10+2*(X+5*(a+b))

您可以使用Regex.Replace函數。

Regex.Replace(@"(?<=\d)(?=[a-zA-Z])", "*");

要么

Regex.Replace(@"(\d)([a-zA-Z])", "$1*$2");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM