Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | cri@tiac.net (Richard Harter) |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: how to use regex library |
| Date | 2011-05-23 21:16 +0000 |
| Message-ID | <4ddabab0.345938784@text.giganews.com> (permalink) |
| References | (6 earlier) <pan.2011.05.19.11.59.30.927000@Owner-PC.com> <pan.2011.05.19.19.12.48.713000@Owner-PC.com> <slrnitarbh.pff.usenet-nospam@guild.seebs.net> <4dd5822c.3772884@text.giganews.com> <CLedndmZB91nAkvQnZ2dnUVZ_q6dnZ2d@bestweb.net> |
On Fri, 20 May 2011 13:08:14 -0400, Kenneth Brody
<kenbrody@spamcop.net> wrote:
>On 5/19/2011 4:58 PM, Richard Harter wrote:
>> On 19 May 2011 19:40:38 GMT, Seebs<usenet-nospam@seebs.net> wrote:
>>
>>> On 2011-05-19, Owner<Owner@Owner-PC.com> wrote:
>>>> I got one more problem. I dont' think Man page mentioned
>>>> about second matching on the same string, when I read it.
>>>> I tried call "i = regexec(r, argv[2]);" twice, but didn't move
>>>> forward after first match. I did found however
>>>> "i = regexec(r, r->endp[0]);" matches the second substring.
>>>> but I don't think it's meant to be used this way.
>>>> How do you match same pattern more than twice on the same line?
>>>
>>> Well, typically, you would find a point in the line after the first
>>> match, and use regexec to match there.
>>>
>>> Why don't you think it's meant to be used this way? What seems unusual
>>> to you about using the endpoint of a previous match as the starting place
>>> to look to see whether there are any more matches? Why would you think
>>> that it would "move forward" after the first match?
>>
>> Because that is a quite reasonable expectation. Many search
>> facilities operate either operate that way or they have a 'next
>> instance' command.
>
>Yes, but then they have separate "get first" and "get next" calls, or they
>have "initialize" and "do it" calls, or some other method of saying
>"continue from where you left off".
Or else the first call initializes the search.
>
>If all you pass it is a regex and a buffer pointer, why would you expect it
>to do a "get next" on the second call? If you expect the answer to be
>"because I passed the _same_ pointer both times, so it should 'know' I meant
>to do 'get next' on it", then how would you ever use it in a loop where the
>same buffer is passed, though the contents have changed? (For example,
>something like "grep", which would print any line that has a match to the
>regex.)
You seem to be just saying "it won't work" without actually thinking
it out. The issue at hand is the possibility of a regexec based
search that is passed a buffer address; each time it is called with
the same buffer address it returns the next match until there are no
more matches. There are three separate issues - can it be done,
should it be done, and is it reasonable to expect it.
The "can it be done" is fairly trivial. What is needed is a bit of
memory. One way to do it is to have two pointers, one to the buffer
currently being processed, and one to the next search point.
Initially the pointers are set 0,0. If the buffer being passed in
does not match the stored buffer we set the pointers to
(buffer,buffer). In other words we reinitialize every time we change
buffers. Next we search for a match beginning at the search point.
If no match is found we reset to (0,0) and return no match. If a
match is found we (a) reinitialize if the buffer is exhausted, or
(b)we set the next search point. That done, we return the found match.
The "should it be done" is another matter. The plus side is that it
saves boilerplate code in the calling program. The down side is that
it requires state memory. This could be in the regexec struct, in the
calling program, or in the search routine.
Finally, "is it reasonable to expect it?" That depends. For
implementers who are wedded to the thought that "buffer" must be the
search point, probably not. For users who want a bit of convenience,
probably.
>
>
>> It is misleading to say that computers 'do what
>> you tell them to do'. Unless you are programming down to the bare
>> iron you don't tell computers what to do - you tell some piece of
>> software what to do. What that software does is (sometimes) what the
>> programmer who wrote it decided it ought to do. It is a serious
>> mistake to blame the computer for the design errors of the software
>> creators.
>
>Well, in that case "you" told the computer to use a defective piece of
>software, and it did just that. :-)
Or not at all. :-)
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-17 23:11 -0400
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-18 03:33 +0000
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-18 06:41 -0400
Re: how to use regex library James Kuyper <jameskuyper@verizon.net> - 2011-05-18 08:00 -0400
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-18 20:00 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-18 19:44 +0000
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-19 00:43 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 00:52 +0000
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-18 22:04 -0400
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 02:21 +0000
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-19 04:04 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 03:14 +0000
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-19 12:03 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 14:37 +0000
Re: how to use regex library Geoff <geoff@invalid.invalid> - 2011-05-19 11:29 -0700
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 19:08 +0000
Re: how to use regex library Geoff <geoff@invalid.invalid> - 2011-05-19 12:11 -0700
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-20 12:55 -0400
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-19 04:01 +0100
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-19 16:02 +0000
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 16:34 +0000
Re: how to use regex library Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-19 13:59 -0700
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 22:06 +0000
Re: how to use regex library Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-24 02:03 -0700
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-20 13:14 -0400
Re: how to use regex library Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-24 02:16 -0700
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-19 14:37 -0400
Re: how to use regex library James Kuyper <jameskuyper@verizon.net> - 2011-05-18 19:44 -0400
Re: how to use regex library Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-05-19 03:49 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 03:03 +0000
Re: how to use regex library Ike Naar <ike@iceland.freeshell.org> - 2011-05-19 06:48 +0000
Re: how to use regex library James Kuyper <jameskuyper@verizon.net> - 2011-05-19 05:58 -0400
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 14:37 +0000
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-19 14:48 -0400
Re: how to use regex library Shao Miller <sha0.miller@gmail.com> - 2011-05-19 15:05 -0400
Re: how to use regex library Mark Bluemel <mark_bluemel@pobox.com> - 2011-05-18 13:36 +0100
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-18 13:13 -0400
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-18 22:13 -0400
Re: how to use regex library Mark Bluemel <mark_bluemel@pobox.com> - 2011-05-19 08:55 +0100
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-19 07:59 -0400
Re: how to use regex library Keith Thompson <kst-u@mib.org> - 2011-05-19 08:50 -0700
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-19 15:12 -0400
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 19:40 +0000
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-19 20:58 +0000
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-19 22:06 +0000
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-20 01:01 +0000
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-20 01:57 +0000
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-20 13:27 -0400
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-20 13:08 -0400
Re: how to use regex library Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-20 18:54 +0100
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-20 19:14 +0000
Re: how to use regex library Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-21 00:04 +0100
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-23 12:42 -0400
Re: how to use regex library Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-23 20:16 +0100
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-23 21:16 +0000
Re: how to use regex library Kenneth Brody <kenbrody@spamcop.net> - 2011-05-24 12:08 -0400
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-25 05:27 +0000
Re: how to use regex library Michael Press <rubrum@pacbell.net> - 2011-05-22 21:41 -0700
Re: how to use regex library cri@tiac.net (Richard Harter) - 2011-05-23 21:33 +0000
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-18 16:03 +0000
Re: how to use regex library Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-05-18 14:05 +0000
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-20 22:06 -0400
Re: how to use regex library Seebs <usenet-nospam@seebs.net> - 2011-05-21 03:49 +0000
Re: how to use regex library Owner <Owner@Owner-PC.com> - 2011-05-21 20:25 -0400
Re: how to use regex library Shao Miller <sha0.miller@gmail.com> - 2011-05-21 13:17 -0500
csiph-web