|
|
| Don't ask to ask, just ask | |
| PerlMonks |
Answer: How do I remove whitespace at the beginning or end of my string? |
| ( #950578=categorized answer: print w/ replies, xml ) | Need Help?? |
|
Q&A > regular expressions > How do I remove whitespace at the beginning or end of my string? contributed by trizen
There are some faster solutions which sometimes can be really slow, depending on how many whitespaces a string contain.
If a string contains a lot of whitespaces. Example: my $str = q{ }. q{a b c d e f g h i j} x 200 . q{ }; MRE book suggests this code: $str =~ s/^\s+((?:.+\S)?)\s+$/$1/s; I admit, I was surprised how fast it is compared with: "s/^\s+//" and his brother "s/\s+$//". They can't even compete at a benchmark, they are too slow with the above example! (that's because of the second regex which match at the end of the string, if fails so many times if string contains a lot of whitespaces (see re 'debug')). Another approach (I know is silly, but is faster in some casses): Benchmark using the above example:
|
|
||||||||||||||||||||||||