聊天记录即正常的qq聊天记录:
2011/9/11 22:33:10 A
[表情] 哎2011/9/11 22:35:12 B
哎什么?痛苦? 2011/9/11 22:35:47 A
没什么啊
因为聊天记录全是2011年的,所以现在用2011(.*\r\n)+?\r\n来匹配
我的思路是:【2011】从2011开始;【.*\r\n】+?然后任意字符+换行任意个,但是非贪婪;【\r\n】因为每次发言都会换行,所以这个匹配结束这样有2个问题,如下:
1,我试了一下少了一部分,不知道少哪了 -。-
2,比如上面的3次发言,匹配第二次时,“\r\n痛苦?\r\n”就匹配不到,因为非贪婪,但是如果贪婪的话会一次匹配多次发言。我正则太菜,基本碰到就跳过因此求教各位正则高手,多谢各位!
2011/9/11 22:33:10 A
[表情] 哎2011/9/11 22:35:12 B
哎什么?痛苦? 2011/9/11 22:35:47 A
没什么啊
因为聊天记录全是2011年的,所以现在用2011(.*\r\n)+?\r\n来匹配
我的思路是:【2011】从2011开始;【.*\r\n】+?然后任意字符+换行任意个,但是非贪婪;【\r\n】因为每次发言都会换行,所以这个匹配结束这样有2个问题,如下:
1,我试了一下少了一部分,不知道少哪了 -。-
2,比如上面的3次发言,匹配第二次时,“\r\n痛苦?\r\n”就匹配不到,因为非贪婪,但是如果贪婪的话会一次匹配多次发言。我正则太菜,基本碰到就跳过因此求教各位正则高手,多谢各位!
解决方案 »
- 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
- 动态编译的程序集可否被缓存?
- 如何实现google桌面搜索结果的远程访问
- 如何知道WebBrowser执行AJAX完成(看似简单超级难题)
- DataGridView如何使列头高度固定
- str.AppendFormat(formatString,str1,str2..)现在想给出一个变量i,根据i的不同后面的strn也不同,该怎么做?
- 工厂模式的有关问题?
- DataGridView 绑定List 后不能排序的问题
- 菜鸟问题 c#怎样连接到数据库(急!!!)
- 从子线程调用方法的问题
- 我有一张表 里面的一些数据想通过vs的一个函数进行转换 后将变换的数据存在另一张表中 应该如何做
- 如何实现播放器时间滚动条?
[表情] 哎2011/9/11 22:35:12 B
哎什么?痛苦? 2011/9/11 22:35:47 A
没什么啊";
Regex reg = new Regex(@"(?s)2011(?:(?!2011).)*");
foreach (Match m in reg.Matches(str))
{
Console.WriteLine(m.Value);
Console.WriteLine("==============");
}
不知道可行否!
string str = @"2011/9/11 22:33:10 A
[表情] 哎2011/9/11 22:35:12 B
哎什么?痛苦? 2011/9/11 22:35:47 A
没什么啊";
Regex reg = new Regex(@"2011/\d{1,2}/\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}\s+"); string[] result = reg.Split(str);
foreach (string r in result)
{
Console.WriteLine(r);
Console.WriteLine(Environment.NewLine + "======================");
}
1L,2L的朋友提供的表达式,都可以实现。我正则菜,没完全看明白 ~。~
6L的朋友提供的也可以,但是因为是根据时间split,所以每一项没有时间了。3L的朋友想的很周到,这个我没想到办法~
只能期待聊天记录中没有2011出现了,如果各位有什么好的解决办法,多谢赐教。
@"(?s:\S.*?)(?=(?m:^20\d{2}/\d{1,2}/\d{1,2} \d{1,2}:\d{1,2}:\d{1,2} .+$)|$)\n?"
汗 你又没说要时间,如果要时间的话,稍微改改就可以了 string str = @"2011/9/11 22:33:10 A
[表情] 哎2011/9/11 22:35:12 B
哎什么?痛苦? 2011/9/11 22:35:47 A
没什么啊";
Regex reg = new Regex(@"(?=2011/\d{1,2}/\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}\s+)"); string[] result = reg.Split(str);
foreach (string r in result)
{
Console.WriteLine(r);
Console.WriteLine(Environment.NewLine + "======================");
}