Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: A question about a regular expression

From: lethalman:fyrebird at: 17-Oct-2004 11:03

Carl Read wrote:
>On Sunday, 17-October-2004 at 10:22:25 you wrote, > >>Hello, >>(first sorry for my poor English) >>I've this string: "<a href='http://bla'>Test</a><a >>href='http://blabla'>Test2</a>" >>Now i would like to get Test and Test2. In Perl i use the following regexp: >><a href='.*?'>(.+?)</a> >>So i get Test and Test2, but how can i do this in Rebol? >>The user will specify the two string between are both Test and Test2, like: >>Before: <a href='*'> >>After: </a> >>So i will get Test and Test2. >> >>Is there any way to do this? >> >> > >Assuming the format of the string remains the same (and I've understood you correctly), you could use something like the following, (though it's a bit quick and dirty)... > >>>str: "<a href='http://bla'>Test</a><a>href='http://blabla'>Test2</a>" >>> >>> >== {<a href='http://bla'>Test</a><a>href='http://blabla'>Test2</a>} > >>>blk: parse/all str "<>" >>> >>> >== ["" "a href='http://bla'" "Test" "/a" "" "a" "href='http://blabla'" "Test2" "/a"] > >>>blk/3 >>> >>> >== "Test" > >>>blk/8 >>> >>> >== "Test2" > >This would work if your user supplied text with spaces in it too... > >>>str: "<a href='http://bla'>Test One</a><a>href='http://blabla'>Test2</a>" >>> >>> >== {<a href='http://bla'>Test One</a><a>href='http://blabla'>Test2</a>} > >>>blk: parse/all str "<>" >>> >>> >== ["" "a href='http://bla'" "Test One" "/a" "" "a" "href='http://blabla'" "Test2" "/a"] > >>>blk/3 >>> >>> >== "Test One" > >>>blk/8 >>> >>> >== "Test2" > >A proper parse rule to create a tidier output could be written of course, but if the above does what you want then you might as well use it. > >-- Carl Read >
Thanks for your reply, but there's a problem... If the user specifies: Before: <tr><td><a href='http://*'> After: </a></td></tr> It won't work... I need something more dynamic -- Fyrebird Hosting Provider - Technical Department