1

使用 sed 从正则表达式中删除量词和元字符时遇到问题。为了使事情复杂化,该代码旨在在 eval 中使用。

$word_check = "about\s*[\w\s]+";
$word_check =~ s/\\\[.+\\\]//g;
$$word_count[$#$word_count + 1] += () = $word_check =~ /(\w+)\s*/g;

Word_check 是正则表达式的副本。想要将正则表达式简化为仅匹配的单词。使用正则表达式来做到这一点。然后计算单词并将结果保存在数组中。选择背后的原因是正则表达式是几个中的一部分,并且在使用匹配 ($&) 时,单词会被删除。从评估。下面的代码旨在作为一个字符串。

for ( my \$i = 0; \$i < \$\$ref_word_count[\$R]; \$i++ ) {
    \$temp_str =~ s/^\\w+\\s*//;
}

OK 找到了答案。只需要分解一些 sed 语句并将方括号单独视为一个字符。

$word_check =~ s/i$//;
$word_check =~ s/[\.\+]//g;
$word_check =~ s/\\[sdwSWD]//g;
$word_check =~ s/[[]//g;
$word_check =~ s/[]]//g;
$word_check =~ s/[*]//g;
$word_check =~ s/[?]//g;
4

1 回答 1

1

可能这有帮助

\Q 引用(禁用)模式元字符直到 \E

\E 结束大小写修改或引用部分,想想 vi

perldoc perlre

于 2012-11-07T20:13:05.990 回答