Perl的几个子字符(串)查找例子代码
文章目录
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 =;
my @filtered = grep(/abc:/,@contents);
return @filtered;
}
文章作者 cookwhy
上次更新 2008-12-23