[英]Removing invalid characters from price
我有一種情況,我必須使用C#從價格字符串中刪除某些字符。
我正在尋找一個正則表達式來刪除這些字符或比這更好的東西。
例如,如果價格字符串是
"3,950,000 ( Ex. TAX )"
我想從字符串中刪除"( Ex. TAX )"
。
基本上,我必須從字符串中刪除任何字符,數字,點和逗號除外。
正則表達式總是很棘手,因為輸入可能會有很大的不同,但是我認為這可以滿足您的需求:
string pattern = @"([\d]+[,.]{0,1})+";
string cleanedPrice = Regex.Match(price, pattern).Value;
解釋:
( - start matching group
[\d]+ - match any decimal digit, at least once
[,.]{0,1} - ...followed by 0 or 1 comma or dot
) - end of group
+ - repeat at least once
簡單替換即可使用RegEx嗎?
string clean = "3,950,000 ( Ex. TAX )".Replace(" ( Ex. TAX )", string.Empty);
嘗試這個
myPrice.Replace(" ( Ex. TAX ),"")
String price = "3,950,000 ( Ex. TAX)".Replace(" ( Ex. TAX)","");
您可以使用以下正則表達式
情況1:如果(Ex.TAX)是常數,則可以使用字符串函數String.Replace刪除文本。
情況2:如果您要求僅包含的數字,則可以使用以下正則表達式提取相同的數字
[0-9,{1,}
情況3:如果(數字后面總是有數字,則可以使用以下正則表達式
\\ d *(?= \\()
以下是正則表達式的C#代碼
public static Regex regex = new Regex(
"\\d.*(?=\\() ",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
//// Capture the first Match, if any, in the InputText
// Match m = regex.Match(InputText);
要找到“(例如TAX)”,請嘗試以下正則表達式:
/\( Ex\. TAX \)/i
Regex rex = new Regex(@"(?:(?:\d{1,2},)?(?:\d{3},)*(?:\d{3})(?:\.\d+){0,})|(\d+)");
Console.WriteLine(rex.Match("3,950,000 ( Ex. TAX )").Groups[0].Captures[0].Value);
Console.WriteLine(rex.Match("3,950,000,000").Groups[0].Captures[0].Value);
Console.WriteLine(rex.Match("3,950,000,000UHFWF#FWHFWEFE").Groups[0].Captures[0].Value);
Console.WriteLine(rex.Match("3,950,000,000,000,000.00").Groups[0].Captures[0].Value);
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.