Re: [pcre-dev] Is the PCRE_CASELESS option invalid in Lookah…

Top Page
Delete this message
Author: Hiroshi OHNO
Date:  
To: pcre-dev
Subject: Re: [pcre-dev] Is the PCRE_CASELESS option invalid in Lookahead assertions?

I was able to solve a problem.
Thank you for advice.

----- Original Message -----
From: "Philip Hazel" <ph10@???>
To: "Hiroshi OHNO" <hiroshi@???>
Cc: <pcre-dev@???>
Sent: Tuesday, August 26, 2008 8:30 PM
Subject: Re: [pcre-dev] Is the PCRE_CASELESS option invalid in Lookahead assertions?


> On Tue, 26 Aug 2008, Hiroshi OHNO wrote:
>
>> I attach the small program. (I use PCRE in Fedora9)
>> The result of this program is different from the regular expression of Perl.
>> Is the first result of this program right?
>
> Which release of PCRE? The current release (7.7) behaves just like Perl:
>
> $ pcretest zz
> PCRE version 7.7 2008-05-07
>
> /^(?!JP)[a-z]*$/i
>    jp
> No match
>    JP
> No match
>    cn
> 0: cn
>    CN   
> 0: CN

>
>
>> int main(int argc, char *argv[])
>> {
>>         int i;
>>         for(i = 1; i < argc; i++) {
>>                 const char *errptr;
>>                 int erroffset;
>>                 pcre *preg = pcre_compile("^(?!JP)[a-z]*$", PCRE_CASELESS, &errptr, &erroffset, NULL);
>>                 if(preg == NULL) {
>>                         if(errptr) {
>>                                 printf("Error:%s\n", errptr);
>>                         }
>>                         continue;
>>                 }

>>
>>                 pcre_extra extra;
>>                 int rc;
>>                 if((rc = pcre_exec(preg,&extra, argv[i], strlen(argv[i]), 0, 0, NULL, 0)) >= 0) {

>
> You are calling pcre_exec() with "extra" unset. This could cause
> trouble. Try using NULL instead.
>
>>                         printf("match(%d):'%s'\n", rc, argv[i]);
>>                 } else {
>>                         printf("unmatch(%d):'%s'\n", rc, argv[i]);
>>                 }
>>                 pcre_free(preg);
>>         }

>>
>>         return 0;
>> }

>
>
> Philip
>
> --
> Philip Hazel
>