regex - 有人能指出我在这个 perl 程序中犯的错误吗?

标签 regex perl

根据下面的代码,如果我在运行时输入“bibhu”,我应该打印一次 bibhu 并且 j 应该是 1。但它没有发生。为什么我得到 j=0

print "enter\n";
$find=<STDIN>;
$j=0;
@lines=qw(bibhu prasanna behera kuni shun jbjdkj);    
foreach (@lines) {
    if ($_ =~ /$find/) {
        print "$_\n";
        $j=$j+1;
    }
}
print "$j\n";

最佳答案

您需要从输入中删除换行符,只需调用 chomp :

chomp($find = <STDIN>);

否则,如果你在提示符下输入“bibhu”,$find 将等于 "bibhu\n"

关于regex - 有人能指出我在这个 perl 程序中犯的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36616574/

相关文章:

json - 如何在 Perl 中将简单的哈希转换为 json?

perl - 禁用不适当的缓冲 Perl

regex - 如何使用python脚本在linux中压缩多个文件?

java - 我怎样才能使 Java 正则表达式全有或全无?

Java Matcher.find() 有时有效,但仅限于周二午餐后

perl - 查找输入值大于或等于键且记录未排序的最近键匹配

regex - 这个 Perl 正则表达式是什么意思 : m/(. *?) :(. *?)$/g?

regex - Perl正则表达式删除字符串中重复的连续子字符串

python - 如何制作 python 正则表达式?

perl - 如何确定 Perl 哈希是否是多维的?