这是字符串:“ - random text- $ 0.15 USD”
我想要提取的是“0.15”,不包括$和USD。因此,文本只包含“0.15”,其他所有单词都已消失。
我该怎么做?
提前致谢:)
答案 0 :(得分:4)
使用正则表达式
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]+
(一个或多个数字后跟.
后跟一个或多个数字)。此表达式必须遵循$
符号(?<=\$)
,并且必须后跟USD
(USD
之前有一个空格)加上字符串(?= USD$)
的结尾。
答案 1 :(得分:2)
var result = Regex.Match("-random text- $0.15 USD", @"\$([ \d\.]+)USD")
.Groups[1].Value;
答案 2 :(得分:1)
使用正则表达式。类似的东西:
\d+\.*\d+
答案 3 :(得分:1)
正则表达式是你的朋友。
使用RegEx
类(System.Text.RegularExpressions
),使用([\d\.]+)
模式提取数字+小数位。
答案 4 :(得分:1)
你可以做这样的事情
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();
答案 5 :(得分:1)
为什么在可以使用内置String
方法时使用正则表达式?
int startIndex = myRandomString.LastIndexOf("$") + 1;
int lastIndex = myRandomString.LastIndexOf("U") - startIndex;
string price = random.Substring(startIndex, lastIndex);
答案 6 :(得分:1)
试试这个:
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
答案 7 :(得分:0)
您是否考虑过使用regex?
Regex.Match("0.15");