Re: No way of looking for a regrexp match starting from a particular point in a string?
- From: Robert Klemme <shortcutter@xxxxxxxxxxxxxx>
- Date: Mon, 04 Jun 2007 13:48:06 +0200
On 04.06.2007 13:28, Robert Dober wrote:
On 6/4/07, Trans <transfire@xxxxxxxxx> wrote:Beating a dead man Tom? As mentioned I had a terrible slip to C in my
On Jun 4, 6:19 am, "Robert Dober" <robert.do...@xxxxxxxxx> wrote:
> On 6/3/07, Kenneth McDonald <kenneth.m.mcdon...@xxxxxxxxxxxxx> wrote:> I'm probably just missing something obvious, but I haven't found a way
> > to match a regular expression against only part of a string, in
> > particular only past a certain point of a string, as a way of finding
> > successive matches. Of course, one could do a match against a string,
> > take the substring past that match and do a match against the substring,
> > and so on, to find all of the matches for the string, but that could be
> > very expensive for very large strings.
>
> > I'm aware of the String.scan method, but that doesn't work for me
> > because it doesn't return MatchData instances.
>
> > What I want is just something like regexp.match(string, n),
>
> Hmm apart of using #scan and #index with $~ as indicated, I do not
> think that there is a performance penalty if you do
>
> rg.match(string[n..-1])
How can that be? You have to create a whole new String.
reasoning, no idea why :(
If that can be avoided in the internal implementation then adding an optional offset
index to #match is not an unreasonable idea.
Robert, actually string[n..-1] is cheaper than you might assume: I believe the new string shares the char buffer with the old string, so you basically just get a new String object with a different offset - the large bit (the char data) is not copied.
Kind regards
robert
.
- Follow-Ups:
- References:
- No way of looking for a regrexp match starting from a particular point in a string?
- From: Kenneth McDonald
- Re: No way of looking for a regrexp match starting from a particular point in a string?
- From: Robert Dober
- Re: No way of looking for a regrexp match starting from a particular point in a string?
- From: Trans
- Re: No way of looking for a regrexp match starting from a particular point in a string?
- From: Robert Dober
- No way of looking for a regrexp match starting from a particular point in a string?
- Prev by Date: Re: No way of looking for a regrexp match starting from a particular point in a string?
- Next by Date: newcocoa, command not found?
- Previous by thread: Re: No way of looking for a regrexp match starting from a particular point in a string?
- Next by thread: Re: No way of looking for a regrexp match starting from a particular point in a string?
- Index(es):
Relevant Pages
|
Loading