Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Open to suggestions on a search and replace..

by I0 (Priest)
on Apr 12, 2002 at 05:49 UTC ( #158493=note: print w/ replies, xml ) Need Help??


in reply to Open to suggestions on a search and replace..

$line =~ s/^(R.*\$SUB=)<\*\d+>/$1/;


Comment on Re: Open to suggestions on a search and replace..
Download Code
Re: Re: Open to suggestions on a search and replace..
by tachyon (Chancellor) on Apr 12, 2002 at 11:05 UTC

    You can use a positive lookahead assertion to avoid having to reinsert $1.

    $line =~ s/^(?=R.*\$SUB=)<\*\d+>//;

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      You can use a positive lookahead assertion to avoid having to reinsert $1. $line =~ s/^(?=R.*\$SUB=)<\*\d+>//;

      aehhm, this won't work. The lookahead doesn't move the position in your regex, so you are effectively looking for /^<\*\d+>/ which isn't there. Instead you would need a look behind assertion but they are only available for constant length.

      As I understand the file format there are no other digits in angle brackets starting with a star. So why not simply write: s/<\*\d+>//;

      Update: As of Rhodium's clarification of the specs, I would now fully recommend IO's solution.

      -- Hofmator

        Hey Hof,
        As I understand the file format there are no other digits in angle brackets starting with a star.
        That is something I don't want to assume..
        Rhodium

        The <it>seeker</it> of perl wisdom.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://158493]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2014-07-12 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (239 votes), past polls