Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: search and replace is not working as expected...

by mikeirw (Pilgrim)
on Nov 20, 2002 at 16:20 UTC ( #214518=note: print w/ replies, xml ) Need Help??


in reply to search and replace is not working as expected...

I believe you want this:

$ARRGH =~ s#<doct>Customer trans\.(?:.*)+?</doct>#<doct>Customer trans\.</doct +>#g;

What the +? does is makes the match less "greedy", so that it matches the first </doct> it finds instead of the last. Also, since you aren't using what you capture in (.*), I put the ?: in, so that perl doesn't try to retain what it found, but still keeps the grouping.

I also changed the regex delimiter to | so that you don't have to escape the / in </doct>.

Update: As per Aristotle's reply, I've changed the regex delimiter to #.


Comment on Re: search and replace is not working as expected...
Select or Download Code
Re^2: search and replace is not working as expected...
by Aristotle (Chancellor) on Nov 20, 2002 at 17:42 UTC
    I also changed the regex delimiter to | so that you don't have to escape the / in </doct>.
    Yuck, please use something else next time. | is a regex metacharacter, you just opened a can of worms.

    Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (8)
As of 2014-12-27 20:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls