我正在尝试将所有上标的字符串"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)...
问题已解决