免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2051 | 回复: 6
打印 上一主题 下一主题

帮忙写一个正则表达式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-29 17:36 |只看该作者 |倒序浏览
要求能够匹配出下面配置文件中的各个session
就是要求能够匹配出
[io]
value=25
frequency=600
这些

要使用posix的ERE。在freebsd下能够跑。表达式最后使用regex库编译

配置文件如下
  1. [io]
  2. value=25
  3. frequency=600

  4. [cpu]
  5. value=2
  6. frequency=5

  7. [load]
  8. value=20003
  9. frequency=602

  10. [http]
  11. value=22
  12. frequency=62
复制代码
谢谢了大家,比较急

论坛徽章:
0
2 [报告]
发表于 2012-03-29 17:54 |只看该作者
这样不如用XML

论坛徽章:
0
3 [报告]
发表于 2012-03-29 18:02 |只看该作者
表达式1:\[([a-bA-B]+)\[
表达式2:value\s*=\s*([0-9]+)
表达式3:frequency\s*=\s*([0-9]+)
1匹配后,再匹配2和3,圆括号内的是想提取的数据,用perl马上就搞定的吧,改成regex库,也很容易的。

论坛徽章:
0
4 [报告]
发表于 2012-03-29 18:09 |只看该作者
回复 3# educkonline

不行啊,第一条就不行。我把最后面的[改成了]也不行
我是freebsd 6.2
   

论坛徽章:
0
5 [报告]
发表于 2012-03-29 18:11 |只看该作者
回复 3# educkonline
我感觉就是转移中括号老是不对


   

论坛徽章:
0
6 [报告]
发表于 2012-03-29 18:51 |只看该作者
我试了一下\w用不了,要用[:alpha:]才行,但还是匹配不出中括号来

论坛徽章:
0
7 [报告]
发表于 2012-03-29 20:10 |只看该作者
本帖最后由 hbmhalley 于 2012-03-29 20:11 编辑

不懂你什么意思 想要一段还是一行还是一个数还是某段某行内的某个数?

  1. /\[[^]]*]/
  2. /value=[0-9]*/
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP