急问如何利用perl统计一行字符串里的指定字符的个数 65

用的是perl,想用正则表达式写。譬如给的字符串是abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopahkl;fjh#dsjfklpafj我... 用的是perl,想用正则表达式写。譬如给的字符串是abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj
我希望的结果是统计出#号有4个。求高手帮忙
展开
 我来答
haolian102
2009-09-08 · TA获得超过573个赞
知道小有建树答主
回答量:1054
采纳率:66%
帮助的人:480万
展开全部
#!C:/perl/bin/perl -w
use strict;

my $str = 'abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopahkl;fjh#dsjfklpafj
';
my $count = $str =~ tr/#/#/;

使用转换运算tr 简单,迅速 可以参考大骆驼书模式匹配一章.
ddtghost
2009-08-24 · TA获得超过482个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:570万
展开全部
遍历统计好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PyQt
2009-08-24 · TA获得超过352个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:94.5万
展开全部
#!/usr/bin/perl -w
use strict;

my $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";

my $count = 0;
while( $str =~ /#/g ) {
$count++;
}
print "num of # is: $count\n";

要统计其他字符,把pattern替换即可了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yes___no
2009-09-02 · TA获得超过3153个赞
知道大有可为答主
回答量:1988
采纳率:100%
帮助的人:2027万
展开全部
perl -e '$a="abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj"; print $a=~s/#/$&/g;'

结果是4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喵招时尚Sun
2020-02-25 · TA获得超过3792个赞
知道大有可为答主
回答量:3114
采纳率:33%
帮助的人:393万
展开全部
三个方法如下:
#!/bin/perl
-w
use
strict;
my
$str
=
"abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa
hkl;fjh#dsjfklpafj";
###########
方法一
my
$pos
=
-1;
my
$num
=
0;
while
(($pos
=
index($str,
"#",
$pos))
>
-1)
{
print
"Found
at
$pos\n";
$pos++;
$num
++;
}
print
"找到$num个!\n";
###############################################################
#
方法二
my
$count
=
0;
while(
$str
=~
/#/g
)
{
$count
++;
}
print
$count,"\n";
##########################################
#
方法3
my
$cc
=
0;
my
$tmp
=
0;
if(
$tmp
=
()
=
($str
=~
/#/g
)
)
{
$cc
+=
$tmp;
}
print
"$cc\n";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式