1.如何用正则将字符串中的"零一二三四五六七八九"分别替换成"0123456789",如"五六一"替换成"561"Regex.Replace("三二一", "([零一二三四五六七八九])", "([零一二三四五六七八九])".IndexOf("$1"), RegexOptions.IgnoreCase) //$1不能用在IndexOf中,郁闷2.看下边的正则匹配:MatchCollection matchs = Regex.Matches("五千二百一十一", "([零一二三四五六七八九])[十百千万亿]([零一二三四五六七八九])", RegexOptions.IgnoreCase);
foreach (Match match in matchs)
MessageBox.Show(match.Value);
结果是:五千二
一十一我希望的结果是:五千二
二百一
一十一怎么修改代码?
foreach (Match match in matchs)
MessageBox.Show(match.Value);
结果是:五千二
一十一我希望的结果是:五千二
二百一
一十一怎么修改代码?
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
string[] strings = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; var textNums =
from n in numbers
select strings[n];
Console.WriteLine("Number strings:");
foreach (var s in textNums) {
Console.WriteLine(s);
}
}
{
string sInput, sRegex; sInput = "六五一"; sRegex = "[零一二三四五六七八九]"; Regex r = new Regex(sRegex); MatchEvaluator myEvaluator = new MatchEvaluator(ReplaceCC); sInput = r.Replace(sInput, myEvaluator); MessageBox.Show(sInput); } public string ReplaceCC(Match m)
{
string result = string.Empty;
switch(m.Value)
{
case "零":
result ="0";
break;
case "一":
result = "1";
break;
case "二":
result = "2";
break;
case "三":
result = "3";
break;
case "四":
result = "4";
break;
case "五":
result = "5";
break;
case "六":
result = "6";
break;
case "七":
result = "7";
break;
case "八":
result = "8";
break;
case "九":
result = "9";
break;
default:
break;
}
return result;
}
private string ConvertToDigit(string ToConvert)
{
const string sBigNumeric = "零一二三四五六七八九";
const string sSmallNumeric = "0123456789";
for (Int32 I = 0; I < sBigNumeric.Length; I++)
ToConvert = ToConvert.Replace(sBigNumeric[I], sSmallNumeric[I]);
return ToConvert;
}