467,222 Members | 1,488 Online
Bytes | Developer Community
Ask Question

Home New Posts Topics Members FAQ

Post your question to a community of 467,222 developers. It's quick & easy.

remove the content in between tags

j1c
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?

Jul 22 '05 #1
  • viewed: 1870
Share:
14 Replies
Its going to have to be a combination of InStr() to get the positions of the
end of the first tag and the start of the second. Then probably just a
couple Left() and Right() calls to recombine.

--
Curt Christianson
Site & Scripts: http://www.Darkfalz.com
Blog: http://blog.Darkfalz.com
"j1c" <ju********@yahoo.ca> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?

Jul 22 '05 #2
j1c
Could you give an example?

Jul 22 '05 #3
"j1c" <ju********@yahoo.ca> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?


Can you change
<!--tag:1--> Content 1 <!--/tag:1-->

to
<span id="tag1"> Content 1 </span>

if so then will the following help? Watch for word-wrap.

<html>
<head>
<title>tags.htm</title>
<script type="text/javascript">
function tags(what) {
document.getElementById("tag"+what).style.visibili ty = "hidden";
}
</script>
</head>
<body>
<span id="tag1"> Content 1 </span>
<br>
<span id="tag2"> Content 2 </span>
<br>
<span id="tag3"> Content 3 </span>
<input type="button" value="Hide 1" onclick="tags(1)">
<input type="button" value="Hide 2" onclick="tags(2)">
<input type="button" value="Hide 3" onclick="tags(3)">
</body>
</html>

Jul 22 '05 #4
Have you tried?
Break it into steps.
1) grab everything to the left of your opening tag.
2) grab everything to the right of your closing tag.
3) recombine.

--
Curt Christianson
Site & Scripts: http://www.Darkfalz.com
Blog: http://blog.Darkfalz.com
"j1c" <ju********@yahoo.ca> wrote in message
news:11*********************@f14g2000cwb.googlegro ups.com...
Could you give an example?

Jul 22 '05 #5
j1c
I used a regex to do it, however I need to do a 'reverse' loop? :)

So, if I have 10 section tags, but only want to see 1,5,7 how can I
loop through removing any matches that do not equal 1,5 or 7

Jul 22 '05 #6
ick.... Since you know that they all start and end with < and > you'll have
to find every instance, check it against your list and keep/dump
accordingly. Sounds like a royal pain.... what is it you are having to do? I
mean maybe there is a better way.

--
Curt Christianson
Site & Scripts: http://www.Darkfalz.com
Blog: http://blog.Darkfalz.com
"j1c" <ju********@yahoo.ca> wrote in message
news:11*********************@o13g2000cwo.googlegro ups.com...
I used a regex to do it, however I need to do a 'reverse' loop? :)

So, if I have 10 section tags, but only want to see 1,5,7 how can I
loop through removing any matches that do not equal 1,5 or 7

Jul 22 '05 #7
j1c
;) yeah it is..

I am getting passed a large string of HTML that will be displayed on a
site or in an email. This string has up to 10 openning and closing tags
like:
<!--tag:1--> bla bla bla <!--/tag:1-->

I am also passed a recordset that has a delimitted list of params
(1,5,7)

Those params match tags that are to be displayed. The rest are to be
stripped.

My regex's are a little rusty, but can I not match everything that !=
the params?

This is what I've got on the go now:
Dim strpage
strpage = "a bunch of html..."
Dim sec
sec = Split(sections, ",")
For i = LBound(sec) To UBound(sec)
Set re1 = New RegExp
re1.IgnoreCase = True
re1.Global = False
re1.Pattern = "<!--tag:" & sec(i) & ">(.*)?<!--/tag:" & sec(i) & ">"
Set Matches = re1.Execute(strpage)

strpage = Replace(strpage, Matches.Item(0).SubMatches(0), "")

Next

Jul 22 '05 #8
ick indeed...
Sorry to say I'm no regex master... Maybe one of the others can get you
closer. Sorry I couldnt....
From the sound of it though, there aren't too many options since you dont
control the incoming file format...

--
Curt Christianson
Site & Scripts: http://www.Darkfalz.com
Blog: http://blog.Darkfalz.com
"j1c" <ju********@yahoo.ca> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
;) yeah it is..

I am getting passed a large string of HTML that will be displayed on a
site or in an email. This string has up to 10 openning and closing tags
like:
<!--tag:1--> bla bla bla <!--/tag:1-->

I am also passed a recordset that has a delimitted list of params
(1,5,7)

Those params match tags that are to be displayed. The rest are to be
stripped.

My regex's are a little rusty, but can I not match everything that !=
the params?

This is what I've got on the go now:
Dim strpage
strpage = "a bunch of html..."
Dim sec
sec = Split(sections, ",")
For i = LBound(sec) To UBound(sec)
Set re1 = New RegExp
re1.IgnoreCase = True
re1.Global = False
re1.Pattern = "<!--tag:" & sec(i) & ">(.*)?<!--/tag:" & sec(i) & ">"
Set Matches = re1.Execute(strpage)

strpage = Replace(strpage, Matches.Item(0).SubMatches(0), "")

Next

Jul 22 '05 #9

j1c wrote:
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?

Load it into frontpage 2003. It has more advanced editing features
such as this.

Jul 22 '05 #10
"j1c" <ju********@yahoo.ca> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?


<%
Dim s, arr, re
s = _
"<!--tag:1-->Content 1<!--/tag:1--><br>" &_
"<!--tag:2-->Content 2<!--/tag:2--><br>" &_
"<!--tag:3-->Content 3<!--/tag:3--><br>" &_
"<!--tag:4-->Content 4<!--/tag:4--><br>" &_
"<!--tag:5-->Content 5<!--/tag:5--><br>" &_
"<!--tag:6-->Content 6<!--/tag:6--><br>" &_
"<!--tag:7-->Content 7<!--/tag:7--><br>" &_
"<!--tag:8-->Content 8<!--/tag:8--><br>" &_
"<!--tag:9-->Content 9<!--/tag:9--><br>" &_
"<!--tag:10-->Content 10<!--/tag:10-->"

arr = Array(1,5,7)

Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "(<!--tag:(?!(" & Join(arr,"|") &
")-)(\d+)-->).*(<!--/tag:\3-->)"

Response.Write re.Replace(s,"$1$4")
%>
Jul 22 '05 #11

"Chris Hohmann" <no****@thankyou.com> wrote in message
news:eu*************@TK2MSFTNGP14.phx.gbl...
"j1c" <ju********@yahoo.ca> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
How can I remove the content in between tags? I have a page that has
several custom tags: <!--tag:1--> Content 1 <!--/tag:1--> <br>
<!--tag:2--> Content 2 <!--/tag:2--> <br> <!--tag:3--> Content 3
<!--/tag:3--> If I only wanted to see the contents of tag 2 for
example, how could I strip out 1 and 3?


<%
Dim s, arr, re
s = _
"<!--tag:1-->Content 1<!--/tag:1--><br>" &_
"<!--tag:2-->Content 2<!--/tag:2--><br>" &_
"<!--tag:3-->Content 3<!--/tag:3--><br>" &_
"<!--tag:4-->Content 4<!--/tag:4--><br>" &_
"<!--tag:5-->Content 5<!--/tag:5--><br>" &_
"<!--tag:6-->Content 6<!--/tag:6--><br>" &_
"<!--tag:7-->Content 7<!--/tag:7--><br>" &_
"<!--tag:8-->Content 8<!--/tag:8--><br>" &_
"<!--tag:9-->Content 9<!--/tag:9--><br>" &_
"<!--tag:10-->Content 10<!--/tag:10-->"

arr = Array(1,5,7)

Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "(<!--tag:(?!(" & Join(arr,"|") &
")-)(\d+)-->).*(<!--/tag:\3-->)"

Response.Write re.Replace(s,"$1$4")
%>


You may want to throw in a non-greedy clause if it's possible that tags
would repeat. The new pattern would be

re.Pattern = "(<!--tag:(?!(" & Join(arr,"|") &
")-)(\d+)-->).*?(<!--/tag:\3-->)"

HTH
-Chris Hohmann
Jul 22 '05 #12
j1c
Thanks for the tips - it is working very well.

1 thing though - in the RegEx what would I need to change to allow
either:

<!--tag:01-->content<!--/tag:01-->

OR

<!--tag:01-->
content
<!--/tag:01-->

Jul 22 '05 #13
"j1c" <ju********@yahoo.ca> wrote in message
news:11*********************@g14g2000cwa.googlegro ups.com...
Thanks for the tips - it is working very well.

1 thing though - in the RegEx what would I need to change to allow
either:

<!--tag:01-->content<!--/tag:01-->

OR

<!--tag:01-->
content
<!--/tag:01-->


<%
Dim s, arr, re
s = _
"<!--tag:1-->Content 1<!--/tag:1--><br>" &_
"<!--tag:2-->Content 2<!--/tag:2--><br>" &_
"<!--tag:3-->Content 3<!--/tag:3--><br>" &_
"<!--tag:4-->Content 4<!--/tag:4--><br>" &_
"<!--tag:5-->Content 5<!--/tag:5--><br>" &_
"<!--tag:6-->Content 6<!--/tag:6--><br>" &_
"<!--tag:7-->Content 7<!--/tag:7--><br>" &_
"<!--tag:8-->Content 8<!--/tag:8--><br>" &_
"<!--tag:9-->Content 9<!--/tag:9--><br>" &_
"<!--tag:10-->" & vbCRLF & "Content 10" & vbCRLF & "<!--/tag:10-->"

arr = Array(1,5,7)

Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.MultiLine=True
re.Pattern = "(<!--tag:(?!(" & Join(arr,"|") &
")-)(\d+)-->)(.|\n)*?(<!--/tag:\3-->)"

Response.Write re.Replace(s,"$1$5")
%>
Jul 22 '05 #14
j1c
thanks for the tips guys

Jul 22 '05 #15

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Aaron Fleming | last post: by
10 posts views Thread by clintonG | last post: by
1 post views Thread by Miguel Dias Moura | last post: by
1 post views Thread by dave8421@hotmail.com | last post: by
3 posts views Thread by junkchiu | last post: by
reply views Thread by Adict | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.