Rob Dixon schreef:
> Dr.Ruud wrote:
>> Rob Dixon schreef:
>>> scooter:
>>>> Can someone help me with the regexp that will match exactly two
>>>> quotes(') or no quotes in the string.
>>>> If a single quote exists, then will break out.
>>>>
>>>> eg:
>>>> aabbcc - Should Match
>>>> aa''bb''c''c - Should Match
>>>> a''b - Should Match
>>>> ab'' - Should Match
>>>>
>>>>
>>>> aa'bbcc - Should not Match
>>>> aa''bb'cc - Should not Match (since there is a single quote)
>>>> 'aabcc - Should not Match
>>>
>>> This does what you have described. It looks for a single quote,
>>> preceded by a character other than a single quote or the start of
>>> the string, and followed by a character other than a single quote
>>> or the end of the string.
>>>
>>> if (not /(?:\A|[^'])'(?:\Z|[^'])/) {
>>> print "matches\n"
>>> }
>>
>> That would fail q{a''''b}.
>
> What do you mean by fail?
>
> use strict;
> use warnings;
>
> for (q{a''''b}) {
>
> if (not /(?:\A|[^'])'(?:\Z|[^'])/) {
> print "matches\n"
> }
>
> }
> __END__
>
> prints 'matches'.
>
> I understand this to be correct as the string doesn't contain a
> solitary single quote.
I guess I meant that the regex inside fails to treat q{''''} as two
instances of q{''}, or as two matches of qr/'[^']*'/.
So what about q{'''} then? The above code prints 'matches' for it.
--
Affijn, Ruud
"Gewoon is een tijger."
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/