John W. Krahn wrote: > > Rodney Wise wrote: > > > > > I'm trying to place HTML Tags around the contents of Quoted material. > > > > I'm using the following PERL code: > > $TextBlockToConvert =~ s/"(.+?)"/"<FONT Color=BLUE>\1<\/Font>"/g; > > > > Below, is an example of problem text this code chokes on. > > > > Example Text: msgStop("", "Invalid date") > > > > 1. The 1st set of Quotes have no contents and so it is > > simply ignored. > > > > 2. The code then finds the next set of Quotes... which is ", " > > NOTE: These Quotes do not belong to the same pair. > > The HTML formatting code is applied to the comma. > > > > 3. Finally, the last set of Quotes are ignored because the > > code thinks there is only a single last Quote left. > > > > In this example (above), I would like the find only the last pair of quotes > > and substitute its contents with the same text, plus the HTML formatting > > code. > > > > Any help would be certainly appreciated. > > > $TextBlockToConvert =~ s/"([^"]*)"/length $1 ? '"<FONT Color=BLUE>\1<\/Font>"' : > '""'/eg;
Hi John. Almost right! But the deprecated \1 in the replacement string won't work with the /e modifier: it needs to be $1. Although I'm sure you knew that. For a diversion, here's my submission $TextBlockToConvert =~ s{("[^"]*")} { qq($1 ? '<FONT Color="BLUE">$1<\/FONT>' : '$1') }eeg; Which also corrects the HTML requirement for quotes around the attribute values. Although, after all, the <FONT> tag itself is deprecated in favour of CSS anyway! Can't win 'em all :) Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]