免费注册 查看新帖 |

Chinaunix

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

怎么提取一篇文章中的中间的几行? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-28 16:01 |只看该作者 |倒序浏览
比如说
..............
..........
.........
..........
ABC
{
................
................
..............
.............
..............
}

我想读取ABC大括号中的某些行,该怎么将其限制在这里面

论坛徽章:
0
2 [报告]
发表于 2007-09-28 16:12 |只看该作者
我的想法是设个flag,遇到{为1,遇到}为0,
在读取行的时候,使用if(flag)来进行print操作

论坛徽章:
0
3 [报告]
发表于 2007-09-28 16:14 |只看该作者
可是在这个文件中有无数个{ }

论坛徽章:
0
4 [报告]
发表于 2007-09-28 17:09 |只看该作者
用正则吧, 先将ABC {}提取保存到一字符串, 然后再提取其中你需要的行.

如果要一次提取的话, 担心正则会变的比较复杂.

论坛徽章:
0
5 [报告]
发表于 2007-09-28 17:13 |只看该作者
原帖由 perljoker 于 2007-9-28 16:12 发表
我的想法是设个flag,遇到{为1,遇到}为0,
在读取行的时候,使用if(flag)来进行print操作



读文件的话, 这个办法不错.
稍微改进下, 用引用计数, 这样还可解决ABC{}中嵌套{}的情况.

$count = 0;
遇到ABC之后 每遇到一个{则$count++, 每遇到一个}则$count--
那么你需要的行是在$count >= 1的那些行当中.


To perljoker: 比你下面的贴快2秒 :>

[ 本帖最后由 Lonki 于 2007-9-28 17:27 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-09-28 17:13 |只看该作者
原帖由 jdxyw 于 2007-9-28 16:14 发表
可是在这个文件中有无数个{ }

如果是无数对单独的{},那不影响啊,flag是变量啊
如果是嵌套的,就用栈的形式来判断,不过嵌套的。。你这里有用吗?

还有,如果你就是单独成对的{},如lonki所说,用一个正则直接读取全文就可以搞定,如果你文件不大的话
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP