我想要求Perl格式化方面的帮助。我有三行如下:
Function SaveOfflineData Started 0012345671 439
Offline data not found in BEHAV_DATA for PartyId = 1054 0012345671 439
Offline data not found in RE_PARTY_LOAN_CONTRACT for PartyId = 1 0012345671 439
我有三行,我需要过滤第一个文本(把它放在变量中)第二个数字(0012345671
- 把它放在变量中),最后一个ID也将它保存到变量中。但是我无法设置正确的正则表达式来格式化第一个文本字符串。有人知道吗?
答案 0 :(得分:1)
当您使用正确的工具进行工作时,此问题变得微不足道。事实证明,这项工作的正确工具不是正则表达式 - 它是unpack。有关pack
和unpack
的简介,请参阅perlpacktut。
use strict;
use warnings;
use Data::Dumper;
while (<DATA>) {
my @fields = unpack('A65 A12 A*');
print Dumper(\@fields);
}
__DATA__
Function SaveOfflineData Started 0012345671 439
Offline data not found in BEHAV_DATA for PartyId = 1054 0012345671 439
Offline data not found in RE_PARTY_LOAN_CONTRACT for PartyId = 1 0012345671 439
输出:
$VAR1 = [
'Function SaveOfflineData Started',
'0012345671',
'439'
];
$VAR1 = [
'Offline data not found in BEHAV_DATA for PartyId = 1054',
'0012345671',
'439'
];
$VAR1 = [
'Offline data not found in RE_PARTY_LOAN_CONTRACT for PartyId = 1',
'0012345671',
'439'
];