相关疑难解决方法(0)

Perl匹配仅返回"1".布尔?为什么?

这一点必须明显,但我只是没有看到它.

我有一个包含数千个记录的文档,如下所示:

Row:1 DATA:
[0]37755442
[1]DDG00000010
[2]FALLS
[3]IMAGE
[4]Defect
[5]3
[6]CLOSED
Run Code Online (Sandbox Code Playgroud)

我已经设法将每条记录分开,我现在正在尝试解析每个字段.

我正在尝试匹配编号的标题,以便我可以提取成功的数据,但问题是我的匹配只在他们成功时返回"1"而如果他们没有则返回任何内容.我尝试申请的任何比赛都会发生这种情况.

例如,应用于每个记录中的简单单词:

my($foo) = $record=~ /Defect/;
print STDOUT $foo;
Run Code Online (Sandbox Code Playgroud)

如果每个记录包含"缺陷",则打印出"1",如果包含其他内容则不打印.

或者:

$record =~ /Defect/;
print STDOUT $1;
Run Code Online (Sandbox Code Playgroud)

什么都不打印.

$record =~ s/Defect/Blefect/
Run Code Online (Sandbox Code Playgroud)

另一方面,将"Blefect"替换为"Blefect".

我真的很困惑为什么我的比赛的回报如此棘手.任何帮助将非常感激.

regex perl parsing

6
推荐指数
2
解决办法
9479
查看次数

标签 统计

parsing ×1

perl ×1

regex ×1