Re: Grep question [parsing variables] problem

This WebDNA talk-list message is from

2003


It keeps the original formatting.
numero = 47292
interpreted = N
texte = However there is a solution that replaces it in one run, regardless of the tags matching:[text]set_main_txt=[grep search=\[(\/?[bBiI])\]&replace=<\1>][text_main][/grep][/text]GyuriJohn Peacock wrote:> Palle Bo Nielsen wrote: > >> Hi John, >> >> Well it should have stated... >> >> this is a test [b]with bold [i]and bold italic[/i] words[/b] >> >> My bad when I wrote the mail to the list... but it still don't work... > > > Nor should it. You will have to replace the nested context first, or > else it will not work. In general, you will be unable to use grep to > manage nested search and replace; you really need to use a finite > state machine to do this in a consistent way. Here's why: > >> >> [!] -- REPLACE [b] WITH (ignore case) text [/!] >> [text]set_main_txt=[grep >> search=\[[bB]\]([^[unurl]%5B[/unurl]]*)\[/[bB]\]&replace=\1> b>][text]set_main_txt[/text][/grep][/text] > > > This part of the regex: > > \[[bB]\]([^[unurl]%5B[/unurl]]*) > > matches this part of the original text: > > [b]with bold [ > > but since there isn't an immediately trailing [/b], the search fails > and hence the replace never happens. > > You will have to do 4 searchs: 1 for each leading and trailing tag: > > [text]set_main_txt=[grep > search=\[[bB]\]&replace=[text]set_main_txt[/text][/grep][/text] > [text]set_main_txt=[grep > search=\[/[bB]\]&replace=[text]set_main_txt[/text][/grep][/text] > > [text]set_main_txt=[grep > search=\[[iI]\]&replace=[text]set_main_txt[/text][/grep][/text] > [text]set_main_txt=[grep > search=\[/[iI]\]&replace=[text]set_main_txt[/text][/grep][/text] > > However, this would still not _disply_ correctly if, as you originally > posted, one of the closing tags was missing (the rest of the page > would be boldface). > > HTH > > John >-- Gyuri Ordody Objects Online, Inc.------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ Associated Messages, from the most recent to the oldest:

    
  1. Re: Grep question [parsing variables] problem (Gyuri 2003)
  2. Re: Grep question [parsing variables] problem (Rob Marquardt 2003)
  3. Re: Grep question [parsing variables] problem (Gyuri 2003)
  4. Re: Grep question [parsing variables] problem (John Peacock 2003)
  5. Re: Grep question [parsing variables] problem (Palle Bo Nielsen 2003)
  6. Re: Grep question [parsing variables] problem (John Peacock 2003)
  7. Grep question [parsing variables] problem (Palle Bo Nielsen 2003)
However there is a solution that replaces it in one run, regardless of the tags matching:[text]set_main_txt=[grep search=\[(\/?[bBiI])\]&replace=<\1>][text_main][/grep][/text]GyuriJohn Peacock wrote:> Palle Bo Nielsen wrote: > >> Hi John, >> >> Well it should have stated... >> >> this is a test [b]with bold [i]and bold italic[/i] words[/b] >> >> My bad when I wrote the mail to the list... but it still don't work... > > > Nor should it. You will have to replace the nested context first, or > else it will not work. In general, you will be unable to use grep to > manage nested search and replace; you really need to use a finite > state machine to do this in a consistent way. Here's why: > >> >> [!] -- REPLACE [b] WITH (ignore case) text [/!] >> [text]set_main_txt=[grep >> search=\[[bB]\]([^[unurl]%5B[/unurl]]*)\[/[bB]\]&replace=\1> b>][text]set_main_txt[/text][/grep][/text] > > > This part of the regex: > > \[[bB]\]([^[unurl]%5B[/unurl]]*) > > matches this part of the original text: > > [b]with bold [ > > but since there isn't an immediately trailing [/b], the search fails > and hence the replace never happens. > > You will have to do 4 searchs: 1 for each leading and trailing tag: > > [text]set_main_txt=[grep > search=\[[bB]\]&replace=[text]set_main_txt[/text][/grep][/text] > [text]set_main_txt=[grep > search=\[/[bB]\]&replace=[text]set_main_txt[/text][/grep][/text] > > [text]set_main_txt=[grep > search=\[[iI]\]&replace=[text]set_main_txt[/text][/grep][/text] > [text]set_main_txt=[grep > search=\[/[iI]\]&replace=[text]set_main_txt[/text][/grep][/text] > > However, this would still not _disply_ correctly if, as you originally > posted, one of the closing tags was missing (the rest of the page > would be boldface). > > HTH > > John >-- Gyuri Ordody Objects Online, Inc.------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ Gyuri

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

Lots of bounce errors (2007) [WebDNA] special chars (2009) Document Contains No Data, Blank Pages with b4, b6 mac! (1999) [WebDNA] How WebDNA email sending works... (2012) Memory Parameters (1998) price totals (2003) RE: groups and [ShowNext] (1997) [SHOWIF] (1997) WC2b15 File Corruption (1997) profiles (1999) [WebDNA] Downloadable docs (2011) Fwd: virtual domain and [listfile] paths and aliases (1998) Sun doesn't have an emailer app? (2000) hierarchy question... (2000) Which GUI HTML editors work with WC ? (1997) WebCat2 - [format thousands] (1997) virtual domain service (1997) Separate SSL Server (1997) (no subject) (1997) Card clearance, problems - solutions? (1997)