微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据关键字提取标记内的完整文本?

如何解决如何根据关键字提取标记内的完整文本?

我有一个日志文件,其内容格式如下:

细节 的 多行客户

ORA-01461:只能为插入到LONG列中而绑定LONG值

现在我要做的是在一天结束时运行脚本并查找关键字 ORA-01461 ,如果出现,请从发生的客户标签内部提取内容在关键字之前并存储在文本文件中。

解决方法

让我给你一些伪代码:

boolean bCustomer = false;
string l = "";
File fIntermediate;
while not eof{
  l = readline();
  if l = "<customer>" or l="</customer>" or l.contains("ORA-01161") or bCustomer
  then fIntermediate.addAtTheBeginning(l);
  if l = "</customer>"
  then bCustomer = False;
  if l = "<customer>"
  then bCustomer = True;
}

该代码的结果将生成一个中间文件,该文件包含具有颠倒顺序的带有“”,“”,“ ORA ...”的行以及“ customer”标记之间的行(因此,{{1 }}。

然后,您使用类似的布尔值addAtTheBeginning()读取该中间文件,并将其放在bORA-01161_found开头。您阅读中间文件。找到False后,将提及布尔值设置为ORA-01161,当发现既不是“”,“ ”也不是“ ORA-01161”的行且提及的布尔值为{{1 }},将内容写入生成的文本文件。

P.s。首先确保您的标记名正确:首先询问“客户”,并在相应地编写答案时将其更改为“ webdoc”有点奇怪:-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。