![](/img/trans.png)
[英]How to remove extra dots spaces from a string to build a decimal using C# Regex?
[英]How to Remove the Decimal Point in string using regex?
我想將字符串格式化為刪除的小數並僅保留整數,但是小數在小數之后包含一些后面的零。 如何格式化它以使那些0消失?
我有輸入字符串數據:
var xRaw= ",String30.0,String1.0,String0.0,String-1.0,StringOFF".Split(',').ToList();
如何輸出"30,1,0,-1,OFF"
格式: "30,1,0,-1,OFF"
var ValuesString = xRaw.Select(x => Regex.Replace(x, "[^OF0-9-,\\.]", "")).ToList()
.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();
regex上方將刪除字符串,並保留所需的字符串“ OFF”,但保留另一個緊挨着“”的字符串。 點。
您可以通過簡單地添加\\.[0-9]+
替代來刪除浮點數的小數部分來修復您的模式(如果它對您而言足夠好)。
@"[^OF0-9-,.]|\.[0-9]+".
更好的選擇是將OFF
保持為一個字符序列 ,而不僅僅是任何O
或F
:
Regex.Replace(x, @"(OFF)|[^0-9-,.]|\.[0-9]+", "$1")
在這里, OFF
被捕獲到組1中, $1
反向引用將其恢復為結果字符串。
嗯...我認為這適合您的輸入字符串。 不知道會發生什么變化,就無法知道它是否適用於您可能獲得的所有數據。
var xRaw= ",String30.0,String1.0,String0.0,String1.0,StringOFF";
string result = String.Join(",",
Regex.Matches(xRaw, "\\d+.?\\d*|OFF")
.Cast<Match>()
.Select(m => {
decimal d;
if(decimal.TryParse(m.Value, out d))
return ((int)d).ToString();
return m.Value;
}));
這是一個簡單的解決方案:
var input = ",String30.0,String1.0,String0.0,String-1.0,StringOFF";
var output = Regex.Replace(Regex.Replace(input, @"[^OF\-\d.,]", ""), @"\.\d", "").TrimStart(',');
工作示例: https : //dotnetfiddle.net/8IordG
string giventxt = "text text 54654654200500.0000 text text";
string[] arry = giventxt.Split('.');
string arry1 = arry[1];
string[] arry2 = arry1.Split(' ');
string completestr = arry[0] + " " + arry2[1] + " " + arry2[2];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.