Posted on 23-12-2008
Filed Under (技术) by waterlin

1) 如何在一个字符串中查找某个字符出现的次数?

原文出处:http://www.perl.com/doc/FAQs/FAQ/oldfaq-html/Q4.24.html

如果你想在一个字符串中查找字符(X)出现的次数,你可以用tr///这个函数、配合下面的方法来实现:

$string = “ThisXlineXhasXsomeXx’sXinXit”:
$count = ($string =~ tr/X//);
print “There are $count Xs in the string”;

2) 如何在一个字符串中查找某个子字符串出现的次数?

上面的代码对于你只查找单个字符来说,是非常有效的。然而,如果你试图计算多个字符组成的子字符串、在一个大字符串中出现的次数,函数tr///就不起作用了。这个时候,我们就需要加一个while循环了:

$string = “-9 55 48 -2 23 -76 4 14 -44”;
$count++ while $string =~ /-\d+/g;
print “There are $count negative numbers in the string”;

3)Perl里查询某一个文件里某一个字符串出现了多少行、以及包含该字符串的行的内容

原文出处:http://www.perlmonks.org/?node_id=650671

我们可以用如下代码实现,子过程retriver()进行读文件、查找等操作。

use strict;
use warnings;
sub retriver();
my @lines;
my $lines_ref;
my $count;
$lines_ref = &retriver();
@lines =@$lines_ref;
$count = @lines;
print “Count :$count\nLines\n”;
print join “\n”,@lines;
sub retriver()
{
    my $file = ‘source_data\data.txt’;
    open FILE, $file or die “FILE $file NOT FOUND – $!\n”;
    my @contents = <FILE>;
    my @filtered = grep(/abc:/,@contents);
    return \@filtered;
}

© 2008, 浏忙大爆炸. All rights reserved.
除非注明,浏忙大爆炸文章均为原创,转载请以链接形式标明本文地址。

Post a Comment
Name:
Email:
Website:
Comments: