[英]Extract specific text from a string
這是字符串:“ - random text- $ 0.15 USD”
我要提取的是“0.15”,不包括美元和美元。 所以文本只包含“0.15”,其他所有單詞都消失了。
我該怎么做呢?
提前致謝 :)
使用正則表達式
string str = "-random text- $0.15 USD";
Regex rx = new Regex(@"(?<=\$)[0-9]+\.[0-9]+(?= USD$)");
var res = rx.Match(str);
if (res.Success) {
var res2 = res.ToString();
}
“主要”部分是[0-9]+\\.[0-9]+
(一個或多個數字后跟a .
后跟一個或多個數字)。 此表達式必須遵循$
符號(?<=\\$)
並且必須后跟USD
( USD
之前有空格)加上字符串結尾(?= USD$)
。
在線測試: http : //regexr.com?30aot
var result = Regex.Match("-random text- $0.15 USD", @"\$([ \d\.]+)USD")
.Groups[1].Value;
使用正則表達式。 就像是:
\d+\.*\d+
正則表達式是你的朋友。
使用RegEx
類( System.Text.RegularExpressions
),使用([\\d\\.]+)
提取數字+小數位。
你可以做這樣的事情
string str = "-random text- $0.15 USD";
int startIndex = str.IndexOf("$")+1;
int length = str.IndexOf("USD", startIndex) - startIndex;
string output = str.Substring(startIndex, length).Trim();
為什么在使用內置String
方法時使用正則表達式?
int startIndex = myRandomString.LastIndexOf("$") + 1;
int lastIndex = myRandomString.LastIndexOf("U") - startIndex;
string price = random.Substring(startIndex, lastIndex);
嘗試這個:
string sentence = "-random text- $0.15 USD";
string[] doubleArray = System.Text.RegularExpressions.Regex.Split(sentence, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "").ToArray();
if (doubleArray.Count() > 0)
{
double value = double.Parse(doubleArray[0]);
}
output:
.15
你有沒有想過使用正則表達式 ?
Regex.Match("0.15");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.