Regular expression to replace tags

Does anyone have a regular expression that will remove any tag and the content between the tags and replace it with the blank tag value? For instance if I want to remove the "<head></head>" tags and any character and/or nested tags between them and replace them with "<head><title>My Title</title></head>".
McHackAsked:
Who is Participating?
 
umbraeConnect With a Mentor Commented:
<CFTRY>
       <cfhttp method="get" url="http://www.yahoo.com" resolveurl="yes">
        </cfhttp>
      <CFCATCH>
            <CFSET ThrowError = true>
      </CFCATCH>
</CFTRY>
<cfset ApScriptEdit =
 reReplaceNoCase(cfhttp.fileContent,
"<head[^>]*>.*</head[^>]*>","<head><title>My Title</title></head>","ALL")>
<Cfoutput>#HTMLCodeFormat(ApScriptEdit)#</Cfoutput>

in order to catch all of the possibilities I'd probably using something like this. It'd catch if they have anything inside the head (standard html does not, but they may have a space or something like that).

Just my 2 cents.
0
 
mrichmonCommented:
You could do it in two steps.

Step 1) Replace <head>....</head> with <head></head>

You could use a regular expression similar to:
<head>*</head>

Step 2) Then you can replace <head></head> with what you want using a simple replace.


You could probably combine into one step, up to you.
0
 
McHackAuthor Commented:
Ok, that didn't work. When I ran that example the page "<HEAD></HEAD>" tags were not removed and the content in between them was not removed of which there is a ton (javascripts, meta tags etc.).

Here is the code I was running:

<CFTRY>
       <cfhttp method="get" url="http://www.someurl.com" resolveurl="yes">
        </cfhttp>
      <CFCATCH>
            <CFSET ThrowError = true>
      </CFCATCH>
</CFTRY>
<cfset ApScriptEdit = #ReReplaceNoCase(cfhttp.FileContent, "<head>*</head>", "", "ALL")#>
<Cfoutput>#ApScriptEdit#</Cfoutput>
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
MauseCommented:
Hi

Almost there try this:

<cfset ApScriptEdit  = rereplacenocase(cfhttp.FileContent, "<head>.*?</head>","","ALL")>

Mause
0
 
umbraeCommented:
Whoops. Probably want to remove the htmlCodeFormat() from that output, was doing that for debugging.

-Umbrae
0
 
McHackAuthor Commented:
umbrae

Works great, just what I was looking for.

It looks so simple when I see the solution but some how I never seem to get the regular expressions right.

Thanks for the help!

McHack
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.