文件中的示例行:
Set
我想从多个文件中提取用户名
one two three uname whirlcano four five
提前致谢。
答案 0 :(得分:2)
您可以使用正则表达式捕获组来捕获用户名:
while (my $row = <$fh>) {
chomp($row); # strip newline character
# capture first group of word characters after uname and one or more spaces
my ($username) = $row =~ m/uname\s+(\w+)/;
....
}
您可以将上面示例中的\s+
更改为文件的分隔符,但通常在使用真实 CSV解析器解析CSV类型文件时优于正则表达式。 Text::CSV_XS
就是一种流行的解析器。
有关在正则表达式中捕获组的详细信息,请参阅perldoc perlre