如何使用Perl提取部分行?

时间:2013-03-27 10:26:44

标签: regex perl extraction

我在Perl中遇到一个小问题,如下所述: 我有这样一个文件:

  

你好朋友 - >你好(0.2)

     

你好朋友 - >你好我的朋友们(0.2)

我想在箭头“ - >”之前只提取短语 它意味着: 朋友你好

4 个答案:

答案 0 :(得分:1)

my ($pre, $post) = split /\s*->\s*/, $line;

答案 1 :(得分:1)

一种方式:

perl -F'->' -alne '/->/ and print $F[0];' file

答案 2 :(得分:0)

试试这样的事情:

    my $line = "hello friends -> Hello (0.2)";
    if ($line =~ m/([\w\W]+)->([\W\w]+)/) {
        my $property=$1;
        my $value=$2;

        # stuff here
        print STDOUT "property = $property\n";
        print STDOUT "value = $value\n";
    }

答案 3 :(得分:0)

在awk模式下的Perl

$ perl -F'-' -lane 'print $F[0]' input
hello friends 

hello friends