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


in reply to Re: Regex Help
in thread Regex Help

Thanks 2teez, Now I have 1 more doubt. pls can u? If the data is like below, how we can do it?
$line = "pirates1 of careebian 100"; $line = "pirates2 of careebian 100"; $line = "pirates3 of careebian 100";
and I need the output as "pirates1 of careebian" & "pirates2 of careebian" & "pirates3 of careebian"

Replies are listed 'Best First'.
Re^3: Regex Help
by 2teez (Vicar) on Mar 28, 2013 at 06:21 UTC

    then change this print $1,$/ if/(\D+?)\d+?/;
    to
    this print $1,$/ if/(.+?)\s+?\d+?/;

    UPDATE:
    In case, you have all these data in the same file you can try this:

    use strict; use warnings; while(<DATA>){ chomp; print $1,$/ if/(.+?)(\s+)?\d+?$/; } __DATA__ piratesofcareebian100 pirates of careebian100 pirates of careebian 100 pirates1 of careebian 100 pirates2 of careebian 100 pirates3 of careebian 100

    Output
    piratesofcareebian pirates of careebian pirates of careebian pirates1 of careebian pirates2 of careebian pirates3 of careebian
    Please, check the reference I mentioned in my first post on this thread.
    Hope that helps

    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
      Thanks 2Teez. That was clear & fine... :)

        How about "everything from pirates to careebian" ? ;-)

        use strict; use warnings; while(<DATA>){ chomp; print $1,$/ if /(pirates.*careebian)/; } __DATA__ piratesofcareebian100 pirates of careebian100 pirates of careebian 100 pirates1 of careebian 100 pirates2 of careebian 100 pirates3 of careebian 100