regex - 如何在 Perl 的数组中搜索固定且不区分大小写的字符串模式?

标签 regex perl case-sensitive

我想制作一个 perl 脚本来获取值列表(散列中的键)并在数组中搜索它。我需要搜索固定模式,但它可以不区分大小写。这是我的代码:

foreach my $element ( keys %data ) {
    # this line search the exact pattern, but it isn't case insensitive
    if ( first { $element eq $_ } @database_lines ) {
        $counter += 1;
        print "$element\n";
    } else {
        next;
    }
}

一些想法?提前致谢。

最佳答案

我可能会为小写的 @database_lines 内容创建一个散列,然后在其中查找:

my %db_lines;
$db_lines{lc $_} = 1 for @database_lines;

foreach my $element (keys %data) {
    if ($db_lines{lc $element}) {
        $counter++;
        print "$element\n";
    }
}

如果你的 Perl 足够新,你可以使用 fc而不是 lc以提供更准确的不区分大小写的匹配。

关于regex - 如何在 Perl 的数组中搜索固定且不区分大小写的字符串模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25477200/

相关文章:

javascript - 在javascript中使用正则表达式删除重复的行

javascript - 使用正则表达式从路径中提取文件名

perl - 函数可以告诉它是从哪个模块调用的吗?

string - 将字符串转换为小写

python - 从字符串中解析有效的 JSON 对象或数组

java - 如何在 Java 中删除标点符号但保留首字母缩写词和连字符单词?

perl - 如何一个接一个地运行后台进程

regex - Perl 正则表达式从哈希替代

mysql,utf-8 列 : how to select only case-sensitive?

PHP similar_text 区分大小写