Subject:
|
Re: Strip surplus white space with Perl
|
Newsgroups:
|
lugnet.off-topic.geek
|
Date:
|
Sun, 29 Oct 2000 16:17:03 GMT
|
Viewed:
|
95 times
|
| |
| |
In lugnet.off-topic.geek, Christopher Lindsey writes:
> "Fredrik Glöckner" wrote:
> >
> > Hi, I'm looking into a quick and simple way to strip off all surplus
> > white space from a string with Perl. If two consecutive characters
> > are <SPACE> and <RET>, for example, it doesn't matter to me which one
> > is preserved and which one is chopped off. Any suggestions?
>
> What about something like
>
> while ($string =~ s/(\s\s+)/substr($&,1,1)/e) {}
>
> ? That should replace all whitespace ([ \t\n\r\f]) that's repeated
> one or more times (that's the first part of the expression) with the
> first character matching in that string. The while() loop does it
> until there aren't any more matches.
>
> Chris
Actually, I think a simpler way is:
$string =~ s/(\s)\s+/$1/g;
The 'g' option at the end of the regexp will actually just do the replace
everywhere in the string that it can, with no real need to loop... Ain't
TMTOWTDI great? :)
DaveE
|
|
Message has 1 Reply: | | Re: Strip surplus white space with Perl
|
| (...) Ahh, but what happens if you have a carriage return followed by a space? The second method eliminates the space and leaves the carriage return, which isn't what he asked for. He wanted a way to replace multiple instances of similar whitespace (...) (24 years ago, 29-Oct-00, to lugnet.off-topic.geek)
|
Message is in Reply To:
| | Re: Strip surplus white space with Perl
|
| (...) What about something like while ($string =~ s/(\s\s+)/substr($&,1,1)/e) {} ? That should replace all whitespace ([ \t\n\r\f]) that's repeated one or more times (that's the first part of the expression) with the first character matching in that (...) (24 years ago, 29-Oct-00, to lugnet.off-topic.geek)
|
10 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|