On Friday 26 September 2008 03:00:15 pm Rob Dixon wrote: > Jack Gates wrote: > > On Friday 26 September 2008 01:23:23 pm John W. Krahn wrote: > >> Jack Gates wrote: > >>> s!(<|</)([^\!][A-Z0-9 ]+>)!$1\L$2\E!g; > >>> or > >>> s/(<|<\/)([^!][A-Z0-9 ]+>)/$1\L$2\E/g; > >>> > >>> The RE above captures and replaces all HTML tags with > >>> lowercase as desired except for any tag that has only one > >>> letter such as <P>, <B> or <I> > >>> > >>> It will get the </B>, </P> and </I> > >>> > >>> It properly ignores the <!DOCTYPE> tag > >>> > >>> What is the correct way to write the above RE? > >> > >> Perhaps this is what you want? > >> > >> s{ ( < (?!!) /? [[:upper:]]{2,} > | < [[:upper:]]{2,} \s* /> ) > >> } {\L$1}xg; > > > > Yours worked with three exceptions it was missing all the > > single letter tags open and close and the H 1-6 tags and the > > tags that had and element or attribute > > > > A little tweaking and it works. It gets only and all of what I > > want it to get. > > > > s{ ( < (?!!) /? [[:upper:][:digit:] ]{1,} > | < [[:upper:] > > [:digit:] ]{1,} \s* /> ) } {\L$1}xg; > > That won't modify tags that have attributes either. Are you sure > you know what you want? > > R
Yes, why don't you try reading what I wrote. -- Silverfox Please don't CC me. I am subscribed to the list. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/