Okay, you *might* have a problem. If not, then ignore this, but consider
this email if the ReFindList brings back odd results:
This updated function has a third optional parameter. This third parameter
allows you to change all occurance of a single string with a single
character. This helps searching in regexp sometimes. You won't need to worry
about this unless my first solution does not work:
e.g. ReFindList(documentstring,'<center>(.*?)</center>','</center>') - the
last parameter is temporarily converted to a "�". Any character could be
used provided it does not appear in the document.
Of course, if your <center> tags are nested, you'll be in trouble.
==========================================
function ReFindList(Document,SearchString) {
var ComponentList='';
var thisPosition=1;
var exitloop='false';
if (ArrayLen(Arguments) gte 3) {
if (Arguments[3] neq '') {
Document=ReReplaceNoCase(Document,
Arguments[3], '�', 'ALL');
}
}
while (exitloop eq 'false') {
st=refindnocase(SearchString,Document,thisPosition,'TRUE');
if (st.pos[1] neq 0) {
ComponentList=ListAppend(ComponentList,rereplacenocase(Mid(Document,st.pos[1
],st.len[1]),SearchString,'\1','ALL'));
thisPosition=st.pos[1]+1;
}
else {
exitloop='true';
}
}
if (ArrayLen(Arguments) gte 3) {
if (Arguments[3] neq '') {
ComponentList=ReReplaceNoCase(ComponentList,
'�', Arguments[3], 'ALL');
}
}
return ComponentList;
}
==========================================
Paolo
> -----Original Message-----
> From: Stephen Pope [mailto:[EMAIL PROTECTED]
> Sent: 22 October 2003 11:11
> To: [EMAIL PROTECTED]
> Subject: RE: [ cf-dev ] RegEx Fun Fun Fun
>
>
> Yeah .. it might have no tags or it might have a whole freak
> load of em .. hence the greedy regExp. Im scraping thousands
> of old HTML files of an old site for very quick rebranding ..
> horrid job :�/
>
> Thanks anyway :�)
>
> -----Original Message-----
> From: Paolo Piponi [mailto:[EMAIL PROTECTED]
> Sent: 22 October 2003 11:06
> To: '[EMAIL PROTECTED]'
> Subject: RE: [ cf-dev ] RegEx Fun Fun Fun
>
> I think you'll be better with "<center>[^<]*</center>" unless
> you have tags
> within the <center> tag.
>
> Paolo
>
> > -----Original Message-----
> > From: Stephen Pope [mailto:[EMAIL PROTECTED]
> > Sent: 22 October 2003 10:58
> > To: [EMAIL PROTECTED]
> > Subject: RE: [ cf-dev ] RegEx Fun Fun Fun
> >
> >
> > Ooh thanks for that .. *adds to code store* :�)
> >
> > Think I just worked it out though ..
> >
> > ".*<center>(.*?)</center>" .. that seems to be the puppy !
> >
> > Apologies for my poor and very greedy regexp writing :�)
> >
> > Stephen
> >
> > -----Original Message-----
> > From: Paolo Piponi [mailto:[EMAIL PROTECTED]
> > Sent: 22 October 2003 10:54
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: [ cf-dev ] RegEx Fun Fun Fun
> >
> > There might be a more elegant way, but I have this function:
> >
> > ==================================
> > function ReFindList(Document,SearchString) {
> > var ComponentList='';
> > var thisPosition=1;
> > var exitloop='false';
> > while (exitloop eq 'false') {
> >
> > st=refindnocase(SearchString,Document,thisPosition,'TRUE');
> > if (st.pos[1] neq 0) {
> >
> > ComponentList=ListAppend(ComponentList,rereplacenocase(Mid(Doc
> ument,st.pos[1
> > ],st.len[1]),SearchString,'\1','ALL'));
> > thisPosition=st.pos[1]+1;
> > }
> > else {
> > exitloop='true';
> > }
> > }
> > return ComponentList;
> > }
> > ==================================
> >
> > It returns a list of all occurances of the search string.
> Just use the
> > resulting list to find the first and last.
> >
> > Paolo
> >
> > > -----Original Message-----
> > > From: Stephen Pope [mailto:[EMAIL PROTECTED]
> > > Sent: 22 October 2003 10:37
> > > To: [EMAIL PROTECTED]
> > > Subject: [ cf-dev ] RegEx Fun Fun Fun
> > >
> > >
> > > Lo all,
> > >
> > >
> > >
> > > Having some probs with a regexp wondered if anyone can help :�)
> > >
> > >
> > >
> > > Heres the test ..
> > >
> > >
> > >
> > > <CENTEr><b>Yay! You found it !</b></CENTEr>
> > >
> > > <cENTER>Ignore me I'm the middle ground !</cENTER>
> > >
> > > <CENTER>Yay! You found the last One !</CENTER>
> > >
> > >
> > >
> > > From this little example I want to return the top center tag
> > > and the bottom center tag.
> > >
> > >
> > >
> > > I've managed to grab the first one with the expression
> > > "<center>(.*?)</center>" but I'm stuck on grabbing the last
> > > one in that example.
> > >
> > >
> > >
> > > Can anyone help ?
> > >
> > >
> > >
> > > Regards
> > >
> > >
> > >
> > > Stephen Pope
> > > Web Developer
> > >
> > > Eduserv Internet
> > > managed hosting and development
> > >
> > > _____
> > >
> > > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > >
> > > tel: +44 (0)1225 474300
> > > fax: +44 (0)1225 474301
> > > http://www.eduserv.org.uk/internet/
> > >
> > > _____
> > >
> > > Eduserv Internet is a service of Eduserv Technologies Ltd
> > >
> > >
> > >
> > >
> >
> > --
> > ** Archive:
> http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
> >
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > For human help, e-mail: [EMAIL PROTECTED]
> >
> >
> > --
> > ** Archive:
> http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
> >
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > For human help, e-mail: [EMAIL PROTECTED]
> >
>
> --
> ** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> For human help, e-mail: [EMAIL PROTECTED]
>
>
> --
> ** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> For human help, e-mail: [EMAIL PROTECTED]
>
--
** Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
For human help, e-mail: [EMAIL PROTECTED]