我想搜索" F 频率" (我的第一个大写字母)在我的文本文件中。我的代码将打印到输出文件的一些列,包括" Frequencies"。但是也存在" f 的频率" (文本文件中的小写字母第一个字母)。我在代码中使用了这个部分$search_word = qr/Frequencies/;
。如何制作单词的第一个字母" Frequencies" $search_word = qr/Frequencies/;
部分中的大写字母,以消除" f 重复性的出现"在搜索?
答案 0 :(得分:3)
在Perl中,您有ucfirst来大写第一个字母。例如:
$a = "freQuEncY";
$a = ucfirst(lc($a)); # $a <-- "Frequency";
答案 1 :(得分:1)
为什么不使用正则表达式匹配来检查,比如
if($string_to_be_searched =~ /Frequencies/){
do something; # like print
}
答案 2 :(得分:1)
试试这个:
if ( $$test_string[$i] =~ /\b(?i)f(?-i)requencies/ ) {
my $captured = ucfirst($&);
# process $captured
}
说明:
frequencies
的第一个字母不区分大小写。 (?i)
在模式的其余部分发生的位置打开不区分大小写的匹配,或直到(?-i)
撤销它。这也适用于其他旗帜,参见perldoc section on re。 $&
包含完整匹配\b
表示单词边界(也许您不需要,但您的问题说明建议您这样做。)