Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: index regex

by johngg (Abbot)
on Jun 08, 2013 at 10:39 UTC ( #1037829=note: print w/ replies, xml ) Need Help??


in reply to index regex

Rather than index, which will not accept a pattern, use a character class in a capturing regex, match globally in a while loop and use the @- array, see perlvar. Note that a hyphen (-) in a character class has to be the first or last character or it will be interpreted as a range constructor, e.g. [a-z].

$ perl -E ' > $line = > q{The line, as specified, has: no digits (0 to 9); letters!}; > say qq{>$1< found at $-[ 0 ]} while > $line =~ m{([ (),.;:?!-])}g;' > < found at 3 >,< found at 8 > < found at 9 > < found at 12 >,< found at 22 > < found at 23 >:< found at 27 > < found at 28 > < found at 31 > < found at 38 >(< found at 39 > < found at 41 > < found at 44 >)< found at 46 >;< found at 47 > < found at 48 >!< found at 56 $

I hope this is helpful.

Cheers,

JohnGG


Comment on Re: index regex
Select or Download Code
Re^2: index regex
by AnomalousMonk (Abbot) on Jun 08, 2013 at 11:13 UTC

    If 5.10+ is available, use of the  //p regex modifier allows  ${^MATCH} (and friends) to be used eliminating the need for an explicit capture and perhaps slightly speeding the matching:

    >perl -wMstrict -lE "my $line = q{as specified, line has: no digits (0-9); letters!}; ;; say qq{'${^MATCH}' found at $-[0]} while $line =~ m{ [ (),.;:?!-] }xmsgp; " ' ' found at 2 ',' found at 12 ' ' found at 13 ' ' found at 18 ':' found at 22 ' ' found at 23 ' ' found at 26 ' ' found at 33 '(' found at 34 '-' found at 36 ')' found at 38 ';' found at 39 ' ' found at 40 '!' found at 48

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2014-12-27 02:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (176 votes), past polls