Solved

Regular expression to replace tags

Posted on 2004-10-20
6
607 Views
Last Modified: 2013-12-24
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>".
0
Comment
Question by:McHack
6 Comments
 
LVL 35

Expert Comment

by:mrichmon
ID: 12362885
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
 

Author Comment

by:McHack
ID: 12363580
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
 
LVL 10

Expert Comment

by:Mause
ID: 12366895
Hi

Almost there try this:

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

Mause
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 5

Accepted Solution

by:
umbrae earned 500 total points
ID: 12374351
<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
 
LVL 5

Expert Comment

by:umbrae
ID: 12374358
Whoops. Probably want to remove the htmlCodeFormat() from that output, was doing that for debugging.

-Umbrae
0
 

Author Comment

by:McHack
ID: 12376494
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

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Have you ever sent email via ColdFusion and thought of tracking this mail to capture the exact date and time when the message was opened ?  If yes, then this article is for you ! First we need a table user_email with columns user_id , email , sub…
If you don't have the right permissions set for your WordPress location in IIS, you won't be able to perform automatic updates. Here's how to fix the problem.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question