如何在C#中获取2个特定字符之间的字符串

时间:2016-10-21 18:32:32

标签: c# string

与Regex相处困难。

我有这个字符串:

我需要更换这个整数" 11.000000"与另一个号码。

如何识别此字符串:

在#34;%"之前给我一个字符串。直到你到达第一个空格("")?

3 个答案:

答案 0 :(得分:1)

试试这个:

string pattern = @"^Fixed Breakeven with (\d+(\.\d+)?)% Fees$";
string input = "Fixed Breakeven with 11.0000000% Fees";

var match = Regex.Match(input, pattern);
string output = string.Empty;

if (match != null)
{
    output = match.Groups[1].Value;
}

Produces 11.0000000

答案 1 :(得分:1)

您可以使用LINQ:

var myString = "Fixed Breakeven with 11.0000000% Fees";
var number = myString.Split('%').First().Split(' ').Last();

答案 2 :(得分:1)

您也可以尝试使用正则表达式。这是从字符串中获取小数的通用方法。它适用于所有情况。

public static bool ExtractDecimalFromString(string inputString, out Decimal decimalValue)
    {
        Regex regex = new Regex(@"^\D*?((-?(\d+(\.\d+)?))|(-?\.\d+)).*");
        Match match = regex.Match(inputString);
        decimalValue =  match.Success ? Convert.ToDecimal(match.Groups[1].Value) : 0;
        return match.Success;
    }