【问题标题】:Can i group a text file with Regex based on line patterns我可以根据行模式使用正则表达式对文本文件进行分组吗
【发布时间】:2013-04-01 12:57:25
【问题描述】:

给定一个文件:

Timestamp: some text and a number 1
Timestamp: some text and a number 33
Timestamp: some text and a number 1
Timestamp: some text and a number 22
Something totally different, maybe a new pattern
Timestamp: some text and a number 4
Timestamp: some text and a number 2
Something totally different, maybe a new pattern
Something totally different, maybe a new pattern

我想获取第 1 到 4 行(TYPE1)和第 5 行(TYPE2)、第 6,7 行(TYPE1)和第 8,9 行(TYPE2)的分组。

这可以在一个正则表达式中完成,还是应该为每种类型创建一个表达式,然后逐行检查前一行是否为同一类型?

最后我需要返回一个带有pair(int start_char, int end_char)的分组列表

【问题讨论】:

  • 您要对所有项进行分组还是仅对组中的连续项进行分组? (即,您是在寻找 4 个组,还是只在这里寻找 2 个?)
  • 我在这个例子中寻找 4 个组。我想将文本折叠成相似的组。相似性取决于当前行和上一行的正则表达式模式是否匹配。

标签: c# regex


【解决方案1】:

你可以试试这个

string[] lines = System.IO.File.ReadAllLines("your taext file");

       var Groups =( 
                from w in lines 
                group w by w[0] into g 
                select new { FirstLetterLine = g.Key, Lins = g }); 

【讨论】:

  • 我可能会使用这样的东西,可以为组创建一个方法,将行分成一个组。
猜你喜欢
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多