in reply to Re^2: stripped punctuation
in thread stripped punctuation
Except you want to strip punctuation from the beginning or end. The above regex only works if there is punctuation at both beginning and end.
If removing any trailing/leading punctuation is in fact your goal, what about something like:
use strict; use warnings; my $word = 'Wilmer",'; $word =~ s/^ \W*? # ignore any leading punc ( \w .*? ) # swallow everything lazily (?: \W+ )? $ # ignore any trailing punc /$1/x; print $word;
Update: Mind you, at that point, a much simpler regex will likely serve you better in terms of speed and readability:
$word =~ s/(?:^\W+)|(?:\W+$)//g;
Final update - benchmark:
Rate capture non_capture capture 16561/s -- -28% non_capture 22861/s 38% --
The second suggestion is about 30% faster, on average.
Additionally, \w doesn't mean what you think it means.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: stripped punctuation
by thealienz1 (Pilgrim) on Oct 06, 2005 at 21:37 UTC | |
by fishbot_v2 (Chaplain) on Oct 06, 2005 at 21:45 UTC | |
by Nkuvu (Priest) on Oct 06, 2005 at 21:50 UTC |