Home All Groups Group Topic Archive Search About

remove the content in between tags



Author
15 Mar 2005 2:13 PM
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?

Author
15 Mar 2005 2:21 PM
Curt_C [MVP]
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


Show quote
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110896036.244414.219410@g14g2000cwa.googlegroups.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?
>
Author
15 Mar 2005 2:30 PM
j1c
Could you give an example?
Author
15 Mar 2005 3:04 PM
Curt_C [MVP]
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


Show quote
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110897024.045387.24690@f14g2000cwb.googlegroups.com...
> Could you give an example?
>
Author
15 Mar 2005 3:13 PM
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
Author
15 Mar 2005 3:32 PM
Curt_C [MVP]
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


Show quote
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110899627.718726.49130@o13g2000cwo.googlegroups.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
>
Author
15 Mar 2005 3:48 PM
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
Author
15 Mar 2005 4:58 PM
Curt_C [MVP]
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


Show quote
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110901724.642449.220500@g14g2000cwa.googlegroups.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
>
Author
15 Mar 2005 2:35 PM
McKirahan
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110896036.244414.219410@g14g2000cwa.googlegroups.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.visibility = "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>
Author
15 Mar 2005 7:37 PM
larrybud2002
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.
Author
15 Mar 2005 10:16 PM
Chris Hohmann
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110896036.244414.219410@g14g2000cwa.googlegroups.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")
%>
Author
15 Mar 2005 10:25 PM
Chris Hohmann
Show quote
"Chris Hohmann" <nospam@thankyou.com> wrote in message
news:euEhjyaKFHA.656@TK2MSFTNGP14.phx.gbl...
> "j1c" <just1co***@yahoo.ca> wrote in message
> news:1110896036.244414.219410@g14g2000cwa.googlegroups.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
Author
16 Mar 2005 4:29 PM
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-->
Author
16 Mar 2005 6:36 PM
Chris Hohmann
Show quote
"j1c" <just1co***@yahoo.ca> wrote in message
news:1110990568.790279.32780@g14g2000cwa.googlegroups.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")
%>
Author
21 Mar 2005 4:15 PM
j1c
thanks for the tips guys

AddThis Social Bookmark Button