On Jul 8, 2007 Dean Matthews wrote: > How do you set a search and replace grep to replace everything > between two markers. > > For example: > > Find > > <div id="footer"> *oldStuff* </div> > > Replace > > <div id="footer"> *newStuff* </div>
Hi I'm diving in fast! Find: (<div id="footer">)(.|\r)+?(</div>) Replace: \1*newStuff*\3 Don't forget to click "Start at top" if you want to do whole file. Attempted explanation: I've put brackets around <div id="footer"> and </div> so that in the replace expression I can put them straight back in by matching them with \1 and \3 respectively. The bit in the middle of Find expression is: (.|\r)+? Here the . finds all characters except return character. But of course you might have return character in *oldstuff* so I've put \r in as well to get any of those as well. The vertical bar means "or" then I put brackets around .|\r to identify this as being the whole sub-expression if you like. The sub-expression says "any characters that aren't return characters and any return characters" in other words "any character". Now after the (.|\r) I put a +. This says one or more of (.|\r). However it will be "greedy", the + will just try to grab every character in the file in this case, so to stop it being such a greedy thing I put a ? after it and that says, stop once you come across what comes next in the expression, which of course is (</div>). I'm new to BBEdit and as a question to those who've used it longer I'm wondering if BBEdit has a wildcard for "any character at all" to replace (.|\r) ? -- Patrick <http://www.patrickjames.me.uk> -- ------------------------------------------------------------------ Have a feature request? Not sure the software's working correctly? If so, please send mail to <[EMAIL PROTECTED]>, not to the list. List FAQ: <http://www.barebones.com/support/lists/bbedit_talk.shtml> List archives: <http://www.listsearch.com/BBEditTalk.lasso> To unsubscribe, send mail to: <[EMAIL PROTECTED]>
