小编s37*_*yed的帖子

正则表达式用于分割键值对,忽略双引号中的空格

我的正则表达并不像应该的那样好,我提前道歉.

码:

#!/usr/bin/perl -wT
use strict;
use warnings;
use Text::ParseWords;

my @AoH;
my $filename = 'metadata.txt';

open(my $fh, '<', $filename) or die "Could not open file '$filename' $!";
while (<$fh>) {
    my $rec = {};
    for my $field ( split ) {
        (my $key, my $value) = quotewords('=', 0, $field);
        $rec->{$key} = $value;
        print "$key -> $value;\n";
    }
    push @AoH, $rec;
}
Run Code Online (Sandbox Code Playgroud)

我想解析以下字符串(位于metadata.txt中):

video_info ="这是视频说明"video_name ="avideoname.mp4"video_thumb ="avideothumbnail.jpg"

本质上,我想拆分前面提到的字符串,以便引号中的任何内容都是一个值(包括空格)以及=之前的任何内容都是键.

我想要的输出:

video_info -> This is a video description;
video_name -> avidenoname.mp4;
video_thumb …
Run Code Online (Sandbox Code Playgroud)

regex perl

3
推荐指数
1
解决办法
828
查看次数

标签 统计

perl ×1

regex ×1