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/