use*_*303 11 regex string perl
我正在尝试编写一个从文本文件中读取行的Perl程序,并且,对于每一行,从行中提取第一个"单词",并根据返回的字符串执行不同的操作.
主循环看起来像这样:
while(<AXM60FILE>) {
$inputline = $_;
($start) = ($inputline =~ /\A(.*?) /);
perform something, based on the value of string in $start
}
Run Code Online (Sandbox Code Playgroud)
输入文件实际上是一个参数文件,其中parameter_name和parameter_value用冒号(":")分隔.在冒号之前或之后可以有空格或制表符.
因此,该文件看起来(例如)如下所示:
param1:xxxxxxxxxxxx
param2:xxxxxxxxxxxxx
param3:xxxxxxxxxxxxxxxxx
param4:xxxxxxxxxxxxx
那个"($ start)=($ inputline =〜/\A(.*?)/);" 适用于"param2"示例和"param3"示例,其中第一个单词由空格/空格终止,但我如何处理"param1"和"param4"情况,其中parameter_name紧跟冒号?
另外,如果"空白"是制表符还是制表符,而不是空格/空格字符呢?
谢谢,吉姆
这将涵盖您的所有案例,然后是:
my ($key, $value) = split /\s*:\s*/, $inputline, 2;
Run Code Online (Sandbox Code Playgroud)
(或者,在英语中,$inputline最多分为两个元素,由任意数量的空格,冒号和任意数量的空格分隔.)
($start) = $inputline =~ /\A([^:\s]+)/;
Run Code Online (Sandbox Code Playgroud)
这将匹配除空格和:行首之外的任何内容.
或使用split:
($start) = split /[:\s]+/, $inputline, 2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22277 次 |
| 最近记录: |