On Friday 26 September 2008 02:52:45 pm Rob Dixon wrote: > Jack Gates wrote: > > On Friday 26 September 2008 01:20:29 pm Rob Dixon 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? > >> > >> HTML tag names can't contain spaces, so you want > >> > >> s|(</?)([A-Z][A-Z0-9]*)|$1\L$2|g; > > > > Thanks for the effort. Your RE does not work as well as what I > > have. > > > > HTML tags can contain spaces. > > You forgot about > > <p id="something" class="something"> > > No, I didn't. The tag name is 'p' and it has no spaces in it. The > tag has two attributes named 'id' and 'class'. They don't have > spaces in them either. > > If you prefer yours that doesn't work on tags with > single-character names just because it happens to also modify the > first attribute name then go ahead and use it. > > I'm pretty sure there is no simple way to change the case of a > tag's name and all its attribute names while leaving the > attribute values intact. > > Rob
I was not talking about the HTML tag name but the entire tag which includes everything in it. And yes I have a RE that does exactly what I want with John's help. Rob, PLEASE STOP CCing ME. I am subscribed to the list. -- 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/