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

gkl3eglg  于 2023-01-14  发布在  C#
关注(0)|答案(3)|浏览(131)

使用正则表达式很困难。
我有这样的字符串:

我需要用另一个数字替换这个整数“11.000000”。
我如何识别这个字符串,方法是:
给予我字符串之前的“%”,直到你达到第一个空格(““)?

mbzjlibv

mbzjlibv1#

您可以使用LINQ:

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

lx0bsm1f2#

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

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;
    }
ghhaqwfi

ghhaqwfi3#

试试这个:

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 .

相关问题