正则表达式适用于regexr但不适用于app

时间:2014-11-22 17:00:04

标签: c# regex replace superscript

对于所有上标,我正在尝试将类似“25”的字符串转换为“25 ^ 2”。 我正在使用以下正则表达式:

([\xB2\xB3\xB9\u2070\u2074-\u207B]+)

它在regexr.com上完美运行,但不适用于我的应用程序:

Regex.Replace(expr, @"([\xB2\xB3\xB9\u2070\u2074-\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 ' ';
}

它出了什么问题?

1 个答案:

答案 0 :(得分:0)

AAH 我不相信我没有看到。

我打电话给Regex.Replace而没有将它分配给变量(myvar = Regex.Replace)......

问题已解决