把左边的字符串处理为右边的字符串
如:2+sqrt(2)*5 -> 2+Math.Sqrt(2)*5
sQRt(13)-e -> Math.Sqrt(13)-Math.E
maTH.cOs(7) -> Math.Cos(7)
1-Math.Sin(13)*7 -> 1-Math.Sin(13)*7
65-roUNd(5)+MAtH.sQRT(8) -> 65-Math.Round(5)+Math.Sqrt(2)相信大家已明白我的意思,请写出全整代码,谢谢
如:2+sqrt(2)*5 -> 2+Math.Sqrt(2)*5
sQRt(13)-e -> Math.Sqrt(13)-Math.E
maTH.cOs(7) -> Math.Cos(7)
1-Math.Sin(13)*7 -> 1-Math.Sin(13)*7
65-roUNd(5)+MAtH.sQRT(8) -> 65-Math.Round(5)+Math.Sqrt(2)相信大家已明白我的意思,请写出全整代码,谢谢
string result = Regex.Replace(yourStr, @"(math\.)?(?<pre>[a-z])(?<con>[a-z]+\(\d+\))", new MatchEvaluator(regReplace), RegexOptions.IgnoreCase);
private string regReplace(Match m)
{
return "Math." + m.Groups["pre"].Value.ToUpper() + m.Groups["con"].Value.ToLower();
}
只能处理你例子所给情况,无法处理DivRem()、GetHashCode()等情况,如果要处理这种情况,需要做进一步的处理
是这样么:
string yourStr = ..............;
string result = Regex.Replace(yourStr.ToLower(), @"(math\.)?([a-z])([a-z]+\(\d+\))", new MatchEvaluator(regReplace));
private string regReplace(Match m)
{
return "Math." + m.Groups[2].Value.ToUpper() + m.Groups[3].Value.ToLower();
}
.(句点) 匹配任何字符;
\a 匹配任意英文字母;
\~a 匹配除字母外的任意字符;
\d 匹配任意数字;
\~d 匹配除数字外的任意字符;
\h 匹配任意词首字符(字母及下划线);
\~h 匹配除字母及下划线以外的任意字符;
\l 匹配任意小写字母;
\~l 匹配除小写字母外的任意字符;
\o 匹配任意八进制数字相匹配(0-7);
\~o 匹配除八进制数字外的任意字符;
\p 匹配任意半角标点符号;
\~p 匹配除半角标点以外的任意字符;
\s 匹配任意空白字符(空格、TAB);
\~s 匹配任意非空白字符;
\u 匹配任意大写字母;
\~u 匹配除大写字母外的任意字符;
\w 匹配可成词的字符(字母、数字及下划线);
\~w 匹配成词字符外的任意字符;
\x 匹配任意十六进制数字(0-9,a-f, A-F);
\~x 匹配除十六进制数字外的任意字符; 全角部分:
\f 匹配任意双字节字符(汉字或全角符号);
\~f 匹配任意单字节字符;
\A 匹配任意全角ASCII字符;
\b 匹配任意收录在BIG5码集中的双字节字符;
\~b 匹配未收录在BIG5码集中的双字节字符;
\c 匹配任意汉字(不包括符号);
\~c 匹配非汉字的双字节字符;
\D 匹配地支字符(子丑寅卯……);
\g 匹配收录在GB码集中的双字节字符;
\~g 匹配非收录在GB码集中的双字节字符;
\G 匹配大写希腊字母
\j 匹配日文片假名
\J 匹配日文平假名
\k 匹配小写希腊字母
\K 匹配日文平假名;
\m 匹配数学符号;
\n 匹配中文数字(一二三四……);
\N 匹配大写中文数字(壹贰叁肆……);
\P 匹配全角标点符号;
\r 匹配小写俄文字母;
\R 匹配大写俄文字母;
\s 匹配数学符号;
\S 匹配中文序号(⒈⒉⒊⒋……);
\T 匹配天干字符(甲乙丙丁……);
\V 匹配竖排标点符号;
\y 匹配拼音字符;
\Y 匹配注音字符;
\Z 匹配制表字符;
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxfund/html/0f8bffab-ee0d-4e0e-9a96-2b4a252bb7e4.htm
Math.E和Math.PI会发生错误,麻烦改进一下
(math\.)
([a-z]+)([^a-z\(]) 表示方法,一连串的英文后是左括号