首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则表达式瓜分指定长度的字符串

2013-08-16 
正则表达式分割指定长度的字符串现在有一字符串比如IBM发布基于人脑特性设计的全新计算架构和编程语言

正则表达式分割指定长度的字符串
现在有一字符串比如"IBM发布基于人脑特性设计的全新计算架构和编程语言";怎么通过正则表达式得到一组为5个字符长的字符串数组,实例结果为:
"IBM发布",
"基于人脑特",
"性设计的全",
"新计算架构",
"和编程语言"。
望解析...谢谢 正则表达式
[解决办法]
正则我也不会 帮你顶一下吧
[解决办法]


var value = Regex.Matches("IBM发布基于人脑特性设计的全新计算架构和编程语言", @"\w{5}");

[解决办法]
话说你这五个一截取也用不到正则呀,Substring足以了

using System;
public class SubStringTest
{
    public static void Main()
    {
        string[] info = { "Name: Felica Walker", "Title: Mz.", "Age: 47", "Location: Paris", "Gender: F" };
        int found = 0;
        Console.WriteLine("The initial values in the array are:");
        foreach (string s in info)
            Console.WriteLine(s);
        Console.WriteLine("{0}We want to retrieve only the key information. That is:", Environment.NewLine);
        foreach (string s in info)
        {
            found = s.IndexOf(":");
            Console.WriteLine(s.Substring(found + 1).Trim());
        }
    }
}


另外我把正则的例子也给你个

using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections;
using System.Text.RegularExpressions;

namespace cop
{
    class HelloWorld 


    {
        public static void Main(String[] args)
        {

            string test = "123abc";

            Regex reg = new Regex(@"[a-z]", RegexOptions.IgnoreCase);

            string str = "";

            MatchCollection mc = reg.Matches(test);

            foreach (Match m in mc)
            {

                str += m.Value + "\n";

            }

            Console.WriteLine(str);

            /*
             *输出结果 a b c
             */

            Console.ReadKey();

        }
    }

    
}


[解决办法]
引用:
Tim,来个纯Linq的。

纯LINQ的来了:
string str="IBM发布基于人脑特性设计的全新计算架构和编程语言";
var result=str.ToCharArray().GroupBy(x=>str.IndexOf(x)/5).Select(x=>new string(x.ToArray()));

[解决办法]
update:

9L的在找 INDEX时会有BUG,这样才更准确:
string str="IBM发布基于人脑特性设计的全新计算架构和编程语言";
    var result=str.ToCharArray().Select((x,i)=>new {x,i}).GroupBy(x=>x.i/5).Select(g=>new string(g.Select(s=>s.x).ToArray()));

热点排行