正则表达式如何匹配一段字符中的特定句子

昵称不能为空噢噢噢噢 2014-05-20 10:21:06
E/Trace (17215): error opening trace file: No such file or directory (2)
W/dalvikvm(17215): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
E/dalvikvm(17215): GC_CONCURRENT freed 150K, 7% free 8511K/9095K, paused 11ms+12ms, total 41ms
E/Trace (17232): error opening trace file: No such file or directory (2)
W/dalvikvm(17232): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
E/dalvikvm(17232): GC_CONCURRENT freed 162K, 7% free 8532K/9095K, paused 2ms+2ms, total 18ms
W/System.err(17232): Invalid int: ""
E/Trace (17580): error opening trace file: No such file or directory (2)
W/dalvikvm(17580): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
E/dalvikvm(17580): GC_CONCURRENT freed 175K, 7% free 8519K/9095K, paused 2ms+1ms, total 18ms
I/TestRunner(17580): started: TST_05_GroupEPP


这是一段日志,E 是错误日志 W是警告日志, I是所有日志。问题是怎么用正则选出错误日志呀(E开头的)。

正则不太熟啊,
...全文
779 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2014-05-20
  • 打赏
  • 举报
回复
可以使用File读取你的日志。

string path =@"D:\ceshi.txt";
string[] fileArray = File.ReadAllLines(path, Encoding.UTF8);
string[] errroLines = fileArray.Where(p => p.IndexOf("E/") == 0).ToArray();

q107770540 2014-05-20
  • 打赏
  • 举报
回复
foreach(Match m in Regex.Matches(log,"(?m)^E/.+"))
{
   //m.Value
}
q107770540 2014-05-20
  • 打赏
  • 举报
回复
结果:
E/Trace   (17215): error opening trace file: No such file or directory (2)
E/dalvikvm(17215): GC_CONCURRENT freed 150K, 7% free 8511K/9095K, paused 11ms+12ms, total 41ms
E/Trace   (17232): error opening trace file: No such file or directory (2)
E/dalvikvm(17232): GC_CONCURRENT freed 162K, 7% free 8532K/9095K, paused 2ms+2ms, total 18ms
E/Trace   (17580): error opening trace file: No such file or directory (2)
E/dalvikvm(17580): GC_CONCURRENT freed 175K, 7% free 8519K/9095K, paused 2ms+1ms, total 18ms
q107770540 2014-05-20
  • 打赏
  • 举报
回复
foreach(Match m in Regex.Matches(log,"E/.+"))
{
   //m.Value
}
youzelin 2014-05-20
  • 打赏
  • 举报
回复

string errorMessages = 
@"
    E/Trace   (17215): A1 error opening trace file: No such file or directory (2)
    W/dalvikvm(17215): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
    E/dalvikvm(17215): A2 GC_CONCURRENT freed 150K, 7% free 8511K/9095K, paused 11ms+12ms, total 41ms
    E/Trace   (17232): A3 error opening trace file: No such file or directory (2)
    W/dalvikvm(17232): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
    E/dalvikvm(17232): A4 GC_CONCURRENT freed 162K, 7% free 8532K/9095K, paused 2ms+2ms, total 18ms
    W/System.err(17232): Invalid int: ""
    E/Trace   (17580): A5 error opening trace file: No such file or directory (2)
    W/dalvikvm(17580): Refusing to reopen boot DEX '/system/framework/hwframework.jar'
    E/dalvikvm(17580): A6 GC_CONCURRENT freed 175K, 7% free 8519K/9095K, paused 2ms+1ms, total 18ms
    I/TestRunner(17580): started: TST_05_GroupEPP
";
Regex regex = new Regex(@"(?:E/\w+\s*\(\d+\):\s*)(.*)\r\n", RegexOptions.IgnoreCase | RegexOptions.Multiline);
foreach (Match errorMessage in regex.Matches(errorMessages))
{
    Console.WriteLine("\"{0}\"", errorMessage.Groups[1].Value);
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧