字符串: 0000001000001100111000000
位数的5的整倍数, 要求, 每隔5位为一组,
例如上面的字符串分组如下:
组1:00000
组2:01000
组3:00110
组4:00000
组5:01110
组6:00000要求: 去掉在前面 只有一个1, 或者没有1, 的连续组, 去掉后面只有一个1, 或者没有1的连续组得到字符串001100000001110
也就是 得到3,4,5组
位数的5的整倍数, 要求, 每隔5位为一组,
例如上面的字符串分组如下:
组1:00000
组2:01000
组3:00110
组4:00000
组5:01110
组6:00000要求: 去掉在前面 只有一个1, 或者没有1, 的连续组, 去掉后面只有一个1, 或者没有1的连续组得到字符串001100000001110
也就是 得到3,4,5组
解决方案 »
- 郁闷!天气预报的WebService在VS2008里直接F5没问题,发布到IIS就不行。
- 网格前台验证的问题,求助!
- 判断是否是数字的正则表达式
- 动态设置button的disable之后不相应onclientclick事件
- 进程回收会造成Session丢失吗?
- 请问怎么把附件存放到ORACLE的字段中?
- sharepoint 能和 oracle数据库共同协作使用吗?
- 大侠门,我想问下,哪有asp.net+C#与flash完美结合的教程和范例啊?我急用啊,大家有经验的也可以进来交流交流~
- 这里可否用一个url直接登陆?
- 怎么获得id呀?急!在线等!
- 求bcastr4.0的使用详解,不会用……
- ASP.NET独有的命名空间有哪些[winform不可使用的]
如果是取3,4,5分组。
string test = "0000001000001100111000000";
string result = Regex.Replace(test,"(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})","$3$4$5");
result 是你要的3,4,5分组
string test = "0000001000001100111000000";
string result = Regex.Replace(test,@"(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})","$3$4$5");
void Main()
{
string s="000000100000110000000111000000";
for(int i=0;i<s.Length /5;i++)
{
string t =new string(s.ToCharArray().Skip(i*5).Take(5).ToArray());
if(t.ToCharArray().Count(n=>n=='1')>1)
{
Console.WriteLine(t);
}
}
}/*
00110
01110
*///此代码得到的结果是 : 每组中1的个数大于1的数组
string s="000000100000110000000111000000";
for(int i=0;i<s.Length /5;i++)
{
var t =s.ToCharArray().Skip(i*5).Take(5).ToArray();
if(t.Count(n=>n=='1')>1)
{
Console.WriteLine(new string(t));
}
}
因为组4在中间 .其实问题有点类似于string.trim()方法, 每一个分组, 如果只有一个1,或者没有1, 就当空格处理. 组4虽然没有1, 是空格. 可是不是在"前面"和"后面".
这样说 ,明白了吗?
看:
测试字符:0000001000001100111000000
正则:^(?:([01])\1{4})*((?:[0-1]{5})*?)(?:([01])\3{4})*?$
结果: 捕获数量: 1
********捕获: 1****gourp_count:4********
************ gourp[0]*********
0000001000001100111000000
************ gourp[1]*********
0
************ gourp[2]*********
010000011001110
************ gourp[3]*********
0
==============
很明显, gourp[2]里面 01000 不是我要的
010000011001110
?
你Trim掉头尾连续的5个1或5个0?
01000怎么又不要了?不明白你的意思了。
也就是说5位全部为0, 或者有一个1, 视作空格. 然后string.trim();