【发布时间】:2011-06-25 18:51:16
【问题描述】:
我正在尝试编写一个 Perl 程序,它从文本文件中读取行,并且对于每一行,从该行中提取第一个“单词”,并根据返回的字符串执行不同的操作。
主循环如下所示:
while(<AXM60FILE>) {
$inputline = $_;
($start) = ($inputline =~ /\A(.*?) /);
perform something, based on the value of string in $start
}
输入文件实际上是一个参数文件,parameter_name和parameter_value之间用冒号(“:”)隔开。冒号前后可以有空格或制表符。
因此,文件看起来(例如)如下所示:
参数 1:xxxxxxxxxxxx
参数2:xxxxxxxxxxxx
参数 3:xxxxxxxxxxxxxxxxxx
参数4:xxxxxxxxxxxxxxx
那个“($start) = ($inputline =~ /\A(.*?) /);”适用于“param2”示例和“param3”示例,其中第一个单词以空格/空格结尾,但我如何处理“param1”和“param4”情况,其中param_name 后面紧跟冒号?
另外,如果“空白”是一个或多个制表符,而不是空白/空格字符,那该怎么办?
谢谢, 吉姆
【问题讨论】:
-
定义“单词”:英语单词、程序标识符、非空白的空白块、字母、字母数字等。