Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Named capture backreferences cannot be used in character classes?

by moritz (Cardinal)
on Sep 26, 2013 at 17:38 UTC ( #1055870=note: print w/ replies, xml ) Need Help??


in reply to Named capture backreferences cannot be used in character classes?

One workaround is to use a negative look-ahead plus a dot instead of a negated character class:

use strict; use warnings; use 5.010; for (qw/'abc' "abc" 'abc"/) { if (/(?<FQ>['"])(?<content>(?:(?!\k<FQ>).)+)\k<FQ>/s) { say $+{content}; } else { say "Not matched: $_"; } } __END__ abc abc Not matched: 'abc"


Comment on Re: Named capture backreferences cannot be used in character classes?
Download Code
Re^2: Named capture backreferences cannot be used in character classes?
by BrowserUk (Pope) on Sep 26, 2013 at 17:45 UTC

    Perfect. Thank you.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
Re^2: Named capture backreferences cannot be used in character classes?
by Anonymous Monk on Sep 26, 2013 at 22:49 UTC

    Probably not worth it, but fewer negative look-aheads:

    my $re = qr/ (?<FQ>['"]) # Capture starting quote. (?<content> # Capture content. (?: (?>[^'"]*) # Match non-quotes, don't backtrack. (?(?!\k<FQ>).) # Match opposite quote. )* # Repeat. ) \k<FQ> # Match ending quote. /x;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1055870]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2014-09-18 20:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (124 votes), past polls