Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
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
Replies are listed 'Best First'.
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 romping around the Monastery: (6)
As of 2015-07-08 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls