C# 从字符串中提取特定文本
这是字符串:“-随机文本-$0.15 USD” 我想提取的是后面的“0.15”,不包括美元和美元。因此,文本将只包含“0.15”和所有其他单词 我该怎么做呢C# 从字符串中提取特定文本,c#,regex,string,C#,Regex,String,这是字符串:“-随机文本-$0.15 USD” 我想提取的是后面的“0.15”,不包括美元和美元。因此,文本将只包含“0.15”和所有其他单词 我该怎么做呢 提前感谢:)使用正则表达式。比如: \d+\.*\d+ 你有没有想过用它 Regex.Match(“0.15”)正则表达式是您在这里的朋友 使用RegEx类(System.Text.RegularExpressions),使用([\d\.]+)模式提取数字+小数点。使用RegEx string str = "-random text- $
提前感谢:)使用正则表达式。比如:
\d+\.*\d+
你有没有想过用它
Regex.Match(“0.15”)代码>正则表达式是您在这里的朋友
使用RegEx
类(System.Text.RegularExpressions
),使用([\d\.]+)
模式提取数字+小数点。使用RegEx
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();
}
string str=“-random text-$0.15 USD”;
Regex rx=newregex(@“(?您可以这样做
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
这取决于随机文本中是否有句点和数字。但是0.15
后面的文本是固定的吗?@xanatos这太容易了。返回“0.15”“;
我不认为OP想要这个。检查@MrLister他想要什么很清楚,而且很清楚他没有花太多时间来描述它。如果0.15
是固定的。否则,这里还有其他很好的答案,你可以从中得到。因为你的主播,它会找到“0.15”不在示例字符串中。-1这是一个糟糕的问题,没有付出任何努力,但这显然不是所问的问题。如果不是这样,我会在这里的$符号后面查找USD-str.IndexOf(“USD”,startIndex)但是此代码需要额外的长度检查。如果随机文本包含$
符号,则此代码将中断。这很好,谢谢!编辑:我有另一个问题,假设我将在富格文本框中复制大量字符串,那么如何仅在其中获取“0.15”?请注意“0.15”不是固定值。谢谢大家的输入,非常感谢。我对字符串非常陌生,我看过regex,但不知道如何使用它:/
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