http://www.perlmonks.org?node_id=1052551


in reply to extract the value before a particualr string

The regex in the following script does exactly what you specify. It extracts the 5-digit value before each "\total" in a single line.
use strict; use warnings; my $in_string = "Apples Orances:5433 55552246:777449 Country 457852/total" . " " . "Apples Red:9987 green:777449 Public 74585/total" . "\n" ; my @totals = $in_string =~ m{ (\d{5}) (?= /total ) }gx; print "@totals\n";
Bill

Replies are listed 'Best First'.
Re^2: extract the value before a particualr string
by 2teez (Vicar) on Sep 05, 2013 at 12:18 UTC

    Hi,
    with ...(\d{5})... in your regexp, you will only have 57852 instead of 457852 for the first value, since the digits are more that 5.
    Maybe ...(\d{5,})... could help in this case. Or other variation in case the targeted digits are less than 5.

    If you tell me, I'll forget.
    If you show me, I'll remember.
    if you involve me, I'll understand.
    --- Author unknown to me