正则表达式适用于正则表达式,但不适用于应用程序



我正在尝试将所有上标的字符串"25²"转换为"25^2"。我正在使用以下正则表达式:

([xB2xB3xB9u2070u2074-u207B]+)

它可以在 regexr.com 上运行良好,但在我的应用程序中却无法正常工作:

Regex.Replace(expr, @"([xB2xB3xB9u2070u2074-u207B]+)", delegate(Match match)
{
    string resu = "^(";
    match.ToString().All(x =>
    {
        resu += suptonb(x);
        return true;
    });
    resu += ")";
    return resu;
});
char suptonb(char sup)
{
    if (sup == 'xB2')
        return '2';
    if (sup == 'xB3')
        return '3';
    if (sup == 'xB9')
        return '1';
    if (sup == 'u2070')
             return '0';
    if (sup == 'u2074')
        return '4';
    if (sup == 'u2075')
        return '5';
    if (sup == 'u2076')
        return '6';
    if (sup == 'u2077')
        return '7';
    if (sup == 'u2078')
        return '8';
    if (sup == 'u2079')
        return '9';
    if (sup == 'u207A')
        return '+';
    if (sup == 'u207B')
        return '-';
    return ' ';
}

怎么了?

AAH我不相信我没有看到这一点。

我调用了Regex.Place,但没有将其分配给变量(myvar = Regex.Replace)...

问题已解决

最新更新