日志的正则表达式

时间:2013-03-07 14:22:27

标签: regex vbscript

我有一个这样的日志文件:

some strings...
<FX>
another strings...
<FX s='asdf' asd="ascvas">
<TEG1>
  <TEG2>
  </TEG2>
</TEG1>
</FX>
some strings...
</FX>
some strings...
<FX>
             <?xml version="1.0" encoding="utf-16" standalone="yes"?>    

<FX>
<CLR>
</CLR>
</FX>
end of file
</FX>

我需要编写vbscript正则表达式来解析它并得到这个结果:

<FX s='asdf' asd="ascvas">
    <TEG1>
      <TEG2>
      </TEG2>
    </TEG1>
</FX>

并且

<?xml version="1.0" encoding="utf-16" standalone="yes"?>    
<FX>
    <CLR>
    </CLR>
</FX>

我已写过这个表达式:

(<\?xml[^>]*>[\s\S]*)*<\s*FX[^>]*>((?!<\s*FX[^>]*>)[\s\S])*<\s*/\s*FX\s*>

但它与tag / FX无法正常工作。你可以在这里查看rezult: http://regexr.com?341ps

提前致谢。

2 个答案:

答案 0 :(得分:0)

以这种方式改变:

^\<\?xml[^>]*>[\s\S]*<\s*FX[^>]*>((?!<\s*FX[^>]*>)[\s\S])*<\s*/\s*FX\s*>

答案 1 :(得分:0)

/(<[^\s]+\s+\w=[^>]+>[^/]+\/[^/]+/[^/]+/[^>]+>)|(<\?xml[^/]+/[^/]+/[^>]+>)/m
# http://regexr.com?386si


/(<[^\s]+\s+\w=[^>]+>[^\/]+\/[^\/]+\/[^\/]+\/[^>]+>)|(<\?xml[^\/]+\/[^\/]+\/[^>]+>)/m
# (escaped forward slash)
# http://rubular.com/r/SwI2vz6ctk

http://regexr.com?386si

http://rubular.com/r/SwI2vz6ctk