in reply to Re^4: Regex to grab data after the work "branch from"
in thread Regex to grab data after the work "branch from"

looks like its printing the number of times it matched

In scalar context, the return value of the match indicates whether it matched.

Fixing that, plus a number of other things, should leave you with something like

my $update_p4filelog = "...xyz branch from //source/qcom/qct/multimedi +a/qtv/player/audioplayer/rel/1.1/src/file.cpp#1,#8"; my ($path, $ver) = $update_p4filelog =~ /branch from (.*\/.*)#\d+,(#\d ++)$/; my $update_base_branched_p4path = "$path$ver"; print "$update_base_branched_p4path\n";

Replies are listed 'Best First'.
Re^6: Regex to grab data after the work "branch from"
by perl_mystery (Beadle) on Dec 15, 2010 at 00:11 UTC

    I actually want to make the "#\d+," part optional in the regex,so I changed it to [#\d+,]?,it served part of my purpose,it became optional but I want to stop it from printing.how do i do that?

    ($path, $ver) = $update_p4filelog =~ /branch from (.*\/.*)[#\d+,]?(#\d ++)$/;

        I thought you were following me closely,I want "#1," to be optional,to be exact "[#\d+,]" in the regex to be optional,if it is present match it but dont print it...,if it is not present ignore it..

        what I meant was,the below code prints

        //source/qcom/qct/multimedia/qtv/player/audioplayer/rel/1.1/src/file.cpp#1,#8

        whereas I only want to print

        //source/qcom/qct/multimedia/qtv/player/audioplayer/rel/1.1/src/file.cpp#8

        my $update_p4filelog = "...xyz branch from //source/qcom/qct/multimedi +a/qtv/player/audioplayer/rel/1.1/src/file.cpp#1,#8"; my ($path, $ver) = $update_p4filelog =~ /branch from (.*\/.*)[#\d+,]?( +#\d+)$/; my $update_base_branched_p4path = "$path$ver"; print "$update_base_branched_p4path\n";