这让我发疯!
我将一个 txt 文件读入一个名为 $filestring 的字符串。
sysopen(handle, $filepath, O_RDONLY) or die "WHAT?"; local $/ = undef; my $filestring = <handle>;
我创建了一个名为 $regex 的模式变量,它是动态生成的,但采用以下格式:
(a)|(b)|(c)
我在文本中搜索由空格分隔的模式
while($filestring =~ m/($regex)\s($regex)/g){ print "Match: $1 $2\n"; #...more stuff }
大多数匹配都是有效的,但由于某种原因,我每隔一段时间就会得到如下匹配:
Match: and
而正常匹配应该有两个输出,如下所示:
Match: , and
有谁知道这可能是什么原因造成的?
编辑:看起来 NULL 字符正在模式中匹配。