作者roy8130 (reputation)
看板perl
标题Re: [问题] print 特定段落
时间Wed Aug 15 01:49:53 2007
※ 引述《roy8130 (reputation)》之铭言:
: 假设我的档案内容test.txt
: test.txt ----> 输出结果
: sage 1
: 1 1
: 2 2
: 3 3
: sage 2
: 4 4
: 5 5
: 6 6
: sage 3
: 7 7
: 8 8
: sage 4
: . .
: . .
: . .
: 假如我我想抓出所有在 /sage\s\d+/ 之间的所有段落
: 请问该如何写? 谢谢
print unless /stage\s\d+/; 就可以获得以上结果
如果档案结构变成, 如下
open file "<test.txt"; -------> output results
sage 1 g sage 2 P
{
name "..............." name "..............."
name "............" name "............"
number "....."
number "..........." sage 4 P
}
sage 2 P name "..............."
name "............"
name "..............."
name "............"
number "....."
number "..........."
}
sage 3 F
{
name "..............."
name "............"
number "....."
number "..........."
}
sage 4 P
{
name "..............."
name "............"
number "....."
number "..........."
}
ps: 假如找到字母P, 列印sage "\d+" P, 并抓出所有以sage内容中以name为开头的字串
请问要如何写, 谢谢
use strict;
open FH, "<test.txt";
while (<FH>) {
if(/sage\s\d+\s(\w)/i){
if($1 eq "P"){
...........................................?}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.113.156