A12345 -> A1 2345
A123456 -> A 123456
123A4567 -> 123A 4567
12345A12345 -> 1234 5A1 2345 ->特别注意
123A12B223C -> 123A12B223C
规则:
字符串从后向前,截取数字,以2为基数进行分割(截取数必须大于4个)
我自已写了一个感觉不是很好,想知道大家有什么好的算法!
A123456 -> A 123456
123A4567 -> 123A 4567
12345A12345 -> 1234 5A1 2345 ->特别注意
123A12B223C -> 123A12B223C
规则:
字符串从后向前,截取数字,以2为基数进行分割(截取数必须大于4个)
我自已写了一个感觉不是很好,想知道大家有什么好的算法!
解决方案 »
- C# 如何使两个对象相同的属性名字自动全部赋值?
- 请教一个类似表格数据源的结构设计思路
- WInFORM ShowDialog()后父窗口还可以获取焦点
- C#下listview问题
- 求助!WinForms界面中按照用户名删除数据,验证数据库中是否存在该记录,怎么写验证语句?
- remoting+多个远程服务对象+并存与协作
- GGJJ们:datagrid中用dropdownlist改变某一行的值有没有什么好办法呀??
- dll 调用问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 从VC 转向C#中的一个问题...
- ----高手过来支招吧,(c# Winform编程)txt文本这样的数据如何简便的显示在窗体上???
- EXE在没装VS的电脑上运行的问题
- 【C#初学者求教】解释一下这个类中的几行代码
为什么不是
A123456 -> A1 23456
呢?12345A12345 -> 1234 5A1 2345
123A12B223C -> 123A12B223C 这两条能不能解释一下?你并没有把完整的规则描述出来,何来算法?
12345A12345 -> 1 2345 A1 2345
12345A12345 -> 1234 5A1 2345 ->特别注意
123456A1234 -> 123456 A 1234
1234567A123 -> 123456 7A123
如果开始是数字,且大于连续4位以上是数字则是上面的规则
如果没有连续四位的数字则不进行分割
12345A12345 -> 1234 5A1 2345
上面是什么规则啊?!
12345A12345 -> 1234 5A1 2345
123456A1234 -> 123456 A 1234
第二个为什么不是
123456A1234 -> 1234 56A 1234??另外
A123456 -> A 123456
为什么不是
A123456 -> A1 23456
呢? 你这描述能力
1234567A123 -> 123456 7A123
为什么不是
1234567A123 -> 1 234567 A123
A123456 -> A 123456
那为什么不能:
A12345 -> A 12345这中间的规则是什么?
string pattern = @"(?=\d*4\d*)(\d{2}){2,}|.+?(?=\d*4\d*)(?=(\d{2}){2,}(?!\d))";
Regex regex = new Regex(pattern, RegexOptions.Compiled | RegexOptions.ExplicitCapture);
foreach (string str in strings)
{
Console.Write("\n{0}\t->\t", str);
MatchCollection mc = regex.Matches(str);
if (mc.Count == 0)
{
Console.Write(str);
}
else
{
foreach (Match m in mc)
{
Console.Write("{0} ", m.Value);
}
}
}
Regex reg = new Regex(@"(\d{4}(?:\d{2})*)", RegexOptions.RightToLeft);
foreach (string src in test)
{
richTextBox2.Text += src.PadRight(12, ' ') + "-> ";
foreach (string s in reg.Split(src))
{
richTextBox2.Text += s + " ";
}
richTextBox2.Text += "\n";
}
/*---------输出-----------
A1234 -> A 1234
A12345 -> A1 2345
123A123456 -> 123A 123456
1A1234567 -> 1A1 234567
12A12A2345 -> 12A12A 2345
A1234A12345 -> A 1234 A1 2345
*/