13

您如何将字符串(例如“a:b:c:d”)拆分为标记以便在 Perl 中进行解析?

(例如使用拆分?)

最重要的是寻找清晰,直接的答案(但之后添加任何有趣的信息花絮)。

4

4 回答 4

14

是的,分裂是你想要的。

@tokens = split(/:/, "a:b:c:d");
foreach my $token (@tokens) {
    ....
}
于 2009-03-18T19:20:33.287 回答
9

您可以使用拆分。您也可以将它与正则表达式一起使用。


my @tokens = split(/:/,$string);

对于更高级的解析,我推荐Parse::RecDescent

于 2009-03-18T19:18:26.160 回答
5

还可以通过在命令行提示符下键入来查看 perl 附带的文档:

perldoc -f split

要搜索常见问题,请使用

perldoc -q split
于 2009-03-19T10:55:35.863 回答
3

如果你有:

$a = "a:b:c:d";
@b = split /:/, $a;

然后你得到:

@b = ("a", "b", "c", "d")

一般来说,这就是 split 的工作方式:

split /PATTERN/,EXPR

哪里PATTERN可以有很多正则表达式。您不仅限于简单的标记,例如 ' :'

于 2009-03-18T19:19:19.343 回答