我的日志文件是这样的,
2015-04-10 19:10:39,688 INFO [abc] Reqt [283183]: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data>..<Name>EVENT_1</Name>..</Data>
2015-04-10 19:10:39,688 INFO [abc] Req [283184]: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data>..<Name>MY_EVENT</Name>..</Data>
正则表达式我写的是,
pFile = File.read("C:/logs/pdata.log")
Regex = /<Data>(.*?)MY_EVENT(.*?)<\/Data>/m
pData = pFile.match(Regex).to_s
“MY_EVENT”可能位于第一个xml标记或第二个xml标记中,甚至可能最后基于该方案 . 如果它出现在第一个标签中,正则表达式工作正常,如果它出现在第二个标签中,它匹配第一个,我的输出就像,
<Data>..<Name>EVENT_1</Name>..</Data>
2015-04-10 19:10:39,688 INFO [abc] Req [283184]: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data>..<Name>MY_EVENT</Name>..</Data>
我只需要提取一个包含MY_EVENT的xml标签 . 请帮我解决这个问题!提前致谢
1 回答
试试这个 .
我假设所有
<Data>
元素都不包含另一个<Data>
作为其子元素 .