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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: index regex
by AnomalousMonk (Archbishop) on Jun 08, 2013 at 11:13 UTC |