use*_*283 1 regex perl parsing
对于锻炼和好奇心,任何人都知道以下脚本是否可以更紧凑和更快捷:
foreach(@list){
if ($_=~"givenName: ") {
$cname=$_;
$cname=~ s/givenName: //g;
}
if ($_=~"cn: ") {
$cn=$_;
$cn=~ s/cn: //g;
}
...
}
Run Code Online (Sandbox Code Playgroud)
做什么: - 它在行内查找一个字符串,看它是否包含该特定索引 - 然后剥离字符串并读取将内容放入变量的行的其余部分. - 此脚本逐行读取另一个脚本的结果,并标识每行的字段,将值放入适当的变量中
如果列表中的每一行都保证采用'variableName:someText'格式,那么你可以这样做:
foreach (@list) {
/^(\w+): (.*)/ && $vars{$1} = $2;
}
Run Code Online (Sandbox Code Playgroud)
这不是完全像您的解决方案-它把结果放到一个%vars哈希,而不是为命名的变量$cname,$cn等等-但它更简洁和通用.