想知道是否有其他人在 ubuntu 12.04 上使用 perl 5.14 时遇到否定 Perl 中的字符类的问题。
给出以下小片段
while(<>) {
print if /[^Dd]an/;
}
通过以下小输入
Dan
Frank
Steve
daniel
我希望
Frank
Steve
打印到终端而我只得到了 Frank。
只是想知道是否有其他人遇到过类似的问题并弄清楚了问题所在。我会搜索一下,看看是否能找到什么,如果找到什么,我会更新
干杯
答案1
正则表达式
/[^Dd]an/
确实不匹配Steve
。基本上,您匹配了所有带有序列的行an
,除了以D
或开头的行d
。我不明白您如何期望它与 Steve 匹配。
我认为这种行为是正确的。请记住,否定仅适用于该[]
部分内的字符。