怎么提取一篇文章中的中间的几行?

怎么提取一篇文章中的中间的几行?

比如说
..............
..........
.........
..........
ABC
{
................
................
..............
.............
..............
}

我想读取ABC大括号中的某些行,该怎么将其限制在这里面
我的想法是设个flag,遇到{为1,遇到}为0,
在读取行的时候,使用if(flag)来进行print操作
可是在这个文件中有无数个{ }
用正则吧, 先将ABC {}提取保存到一字符串, 然后再提取其中你需要的行.

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


QUOTE:
原帖由 perljoker 于 2007-9-28 16:12 发表
我的想法是设个flag,遇到{为1,遇到}为0,
在读取行的时候,使用if(flag)来进行print操作

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

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


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



QUOTE:
原帖由 jdxyw 于 2007-9-28 16:14 发表
可是在这个文件中有无数个{ }

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

还有,如果你就是单独成对的{},如lonki所说,用一个正则直接读取全文就可以搞定,如果你文件不大的话