使用Perl和正则表达式查询出文档的指定字符串,如下文档内容查询出全部11= 10

例如:文档部分内容INFO:medkkfile:/dssa/asdas/dfasdsadfsep09,20166:3:6fasdfasdgasddasdgasdfasdf... 例如:文档部分内容
INFO:medkk file:/dssa/asdas/dfasdsadf
sep 09,2016 6:3:6 fasdfasdgasddasdgasdf
asdfaakdj|49=asdhfjas56=agsdffasd|ID=d1156|11=H15645646213|
asdfaakdj|49=asdhfjas56=agsdffasd|ID=d1156|fasdffdfasdf|11=H26566532223
asdfaakdj|11=H26566532223|49=asdhfjas56=agsdffasd|ID=d1156|fasdffdfasdf
展开
 我来答
百度网友2f757675
2016-09-13 · TA获得超过7233个赞
知道大有可为答主
回答量:7506
采纳率:90%
帮助的人:1899万
展开全部
  (?<=<item>).*?(?=</item>)

  这里使用宽度断言和勉强模式重复。
  (?<=<item>)表示匹配内容的左边满足表达式<item>,
  (?=</item>)表示匹配内容的右边满足表达式<\item>,
  .*? 表示是勉强模式匹配(即匹配最少的内容),之所以使用勉强模式匹配是因为,如果使用贪婪模式则会出现和您的表达式出现的同样问题。但这个表达式也存在有bug,即如果出现如下的:
  <?xml version="1.0" encoding="UTF-8"?>
  <rss>
  <channel>
  <title>TITLE</title>
  <link>LINK</link>
  <item><title>T1</title><link>L1</item></link><description>D1</description></item>
  <item><title>T2</title><link>L2</link><description>D2</description></item>
  </channel>
  </rss>
  则匹配就不准确了,不过考虑到xml文档格式的严谨,应不会有这种情况出现,故就不对表达式再进行优化了。

  是可以将匹配的结果读取到数组中去的,不知您使用的何种语言,故无法给出代码。
追问
语言使用的是Perl,文件是日志文件*.log
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式