正则表达式求解

色郎中 2017-03-23 08:41:53

{@BLOCK|1%f5|00
{@A-JUM|0|+4.745191E+04{@LIM2|+9.999999E+99|+1.000000E+04}}
}


日志文件有上述格式的记录,上述形式的内容为一条记录,文件中有N条这样的记录, 正则表达式怎么写,将大括号内的,每个竖线的内容分别提取出来

谢谢

...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
色郎中 2017-03-24
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
工具放在这里了 http://download.csdn.net/detail/xuzuning/9791941 有兴趣自己反编译 Split 和 Matchs 正好是反的
另外你提供的 下载页面提示: 404 哦
色郎中 2017-03-24
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
工具放在这里了 http://download.csdn.net/detail/xuzuning/9791941 有兴趣自己反编译 Split 和 Matchs 正好是反的
参考你的,修改一下,改成这样就行了,谢谢你
p = re.compile(r'(?s)(?<=|)[^A-Za-z0-9%+.-]+',re.M|re.I)
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
工具放在这里了 http://download.csdn.net/detail/xuzuning/9791941 有兴趣自己反编译 Split 和 Matchs 正好是反的
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
是的,下载频道不通过我的上传 传到网盘上吧 http://pan.baidu.com/s/1miJltpQ
色郎中 2017-03-23
  • 打赏
  • 举报
回复

s3='{@BLOCK|1%f5|00{@A-JUM|0|+4.745191E+04{@LIM2|+9.999999E+99|+1.000000E+04}}}'
p = re.compile(r'(?s)(?<=|)[^|}{@]+',re.M|re.I)
print p.split(s3)
我这有问题啊,,内容是被分割了,,但是好像提前内容反了,哪里出问题我这

['{@', '|', '|', '{@', '|', '|', '{@', '|', '|', '}}}']
list len:10
{@
|
|
{@
|
|
{@
|
|
}}}
引用 2 楼 xuzuning 的回复:
色郎中 2017-03-23
  • 打赏
  • 举报
回复
牛逼了 这个工具网上能下到吗
xuzuning 2017-03-23
  • 打赏
  • 举报
回复
xuggzu 2017-03-23
  • 打赏
  • 举报
回复
正则不会写(感觉正则也难写),要是我,宁愿按大括号和竖线从开头到结尾进行解析,然后提取。

110,533

社区成员

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

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

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