Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #4722

Re: reduce all spaces to one

From Jerry Stuckle <jstucklex@attglobal.net>
Newsgroups comp.lang.php
Subject Re: reduce all spaces to one
Date 2012-02-04 16:00 -0500
Organization A noiseless patient Spider
Message-ID <jgk6aa$fhl$1@dont-email.me> (permalink)
References (3 earlier) <9p2tqsF5llU1@mid.uni-berlin.de> <jghhqd$nh0$1@speranza.aioe.org> <3604821.WhU2xvQL5g@PointedEars.de> <jgjh1d$lbc$1@dont-email.me> <5276217.E221FIoCZi@PointedEars.de>

Show all headers | View raw


On 2/4/2012 10:21 AM, Thomas 'PointedEars' Lahn wrote:
> Ahh, there was more nonsense to be corrected …
>
> Jerry Stuckle wrote:
>
>> On 2/4/2012 9:41 AM, Thomas 'PointedEars' Lahn wrote:
>>> John wrote:
>>>> Am 03.02.2012 21:19, schrieb M. Strobel:
>>>>> Solution shootout:
>>>>> strobel@s114-intel:~>    php -a
>>>>> Interactive shell
>>>>>
>>>>> php>    echo str_replace('  ',' ','here   are  some      spaces  ');
>>>>> here  are some   spaces
>>>>> php>    echo preg_replace('/\s+/', ' ', 'here   are  some      spaces
>>>>> '); here are some spaces
>>>>> php>
>>>>>
>>>>> The regex solution is the winner.
>>>>
>>>> OK.  Thanks to all those who answered !!
>>>
>>> It should be noted that if your question was understood literally, the
>>> solutions presented so far would be wrong.  \s would match too many
>>> different characters, as it stands for *white-space* in PCRE, _not_ only
>>> the
>>> space character.  In order to reduce only all consecutive *space*
>>> characters to one space character, you need to write
>>>
>>>     echo preg_replace('/ +/', ' ', "here   are  some  \n   spaces  ");
>>>
>>> Note that the newline, which is white-space too, is preserved here.
>>>
>>
>> Newline is preserved in my version also, if you understood ANYTHING
>> about how PHP's regex's work (but we already know you don't).
>
> JFYI, with preg_* methods, PHP's Regular Expressions are *Perl-Compatible*
> Regular Expressions.  That is what the `p' stands for there (as opposed to
> ereg_*, which are now [PHP 5.3] deprecated methods using POSIX *E*xtended
> Regular Expressions).
>
>>> If you want to make the space character in the expression better visible,
>>> you can use
>>>
>>>     (1) echo preg_replace('/\ +/', ' ', "here   are  some  \n   spaces
>>>     ");
>>>
>>
>> The search pattern is invalid.
>
> Perfectly valid
>
> $ php -v
> PHP 5.3.10-1 (cli) (built: Feb  3 2012 10:03:01)
> Copyright (c) 1997-2012 The PHP Group
> Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
>      with XCache v1.3.2, Copyright (c) 2005-2011, by mOo
>      with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
>      with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
>
>>> or
>>>
>>>     (2) echo preg_replace('/\\ +/', ' ', "here   are  some  \n   spaces
>>>     ");
>>>
>>
>> Searches for the sequence '\ '
>
> Not in the PHP version mentioned above.
>
>>> or
>>>
>>>     (3) echo preg_replace('/\x20+/', ' ', "here   are  some  \n   spaces
>>>     ");
>>>
>>
>> Ugh!
>
> man 3 pcrepattern
>
>>> or
>>>
>>>     (4) echo preg_replace('/\\x20+/', ' ', "here   are  some  \n   spaces
>>>     ");
>>>
>>
>> Again, invalid escape sequence.
>
> Again, perfectly valid and working as intended in the PHP version mentioned
> above.  Probably valid in *all* PHP versions that support PCREs.  You have
> not bothered to do any tests before posting, have you?
>
>>> Your approach,
>>>
>>>         echo preg_replace('/[ ]+/', ' ', "here   are  some  \n   spaces
>>>         ");
>>>
>>> is equivalent to that, but slightly less efficient because of the
>>> character class (even in Visual Basic .NET).  However, it also has the
>>> advantage over the simple solutions (1) and (2) that multiple spaces in
>>> the character class will still only match one space.
>>
>> Showing your ignorance again.  You do better when you keep your mouth
>> shut.
>
> Pot, kettle, black.
>
>
> PointedEars

Your ability to state the obvious is only exceeded by your stoopidity 
and ability to confuse a simple issue.

No one here gives a damn about your ability to cut and paste answers 
just to try to prove you know something.  We know you don't - just like 
in other usenet newsgroups.

And we know that lack of appreciation for your stoopidity riles you to 
no end.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-03 20:03 +0100
  Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-03 14:36 -0500
    Re: reduce all spaces to one crankypuss <no@email.thanks> - 2012-02-03 13:05 -0700
      Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-03 15:17 -0500
      Re: reduce all spaces to one "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-02-03 21:19 +0100
        Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-03 21:59 +0100
          Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-04 15:41 +0100
            Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-04 09:57 -0500
              Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-04 16:05 +0100
              Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-04 16:21 +0100
                Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-04 16:00 -0500
              Re: reduce all spaces to one Michael Fesser <netizen@gmx.de> - 2012-02-05 21:47 +0100
                Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-05 16:12 -0500
                Re: reduce all spaces to one "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-02-05 22:23 +0100
                Re: reduce all spaces to one The Natural Philosopher <tnp@invalid.invalid> - 2012-02-05 21:37 +0000
                Re: reduce all spaces to one Michael Fesser <netizen@gmx.de> - 2012-02-05 23:34 +0100
            Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-04 22:26 +0100
              Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-05 00:05 +0100
                Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-05 01:39 +0100
                Re: reduce all spaces to one Jerry Stuckle <jstucklex@attglobal.net> - 2012-02-04 20:56 -0500
                Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-05 18:02 +0100
                Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-05 03:15 +0100
                Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-05 18:04 +0100
                Re: reduce all spaces to one Doug Miller <doug_at_milmac_dot_com@example.com> - 2012-02-05 04:02 +0000
                Re: reduce all spaces to one Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-05 05:35 +0100
                Re: reduce all spaces to one Doug Miller <doug_at_milmac_dot_com@example.com> - 2012-02-06 01:31 +0000
                Re: reduce all spaces to one "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-02-06 09:31 +0100
                [OT]: "native" English (was: reduce all spaces to one) Gregor Kofler <usenet@gregorkofler.com> - 2012-02-05 11:03 +0100
                Re: [OT]: "native" English The Natural Philosopher <tnp@invalid.invalid> - 2012-02-05 10:11 +0000
                Re: [OT]: "native" English Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-02-05 14:00 +0100
                Re: [OT]: "native" English The Natural Philosopher <tnp@invalid.invalid> - 2012-02-05 13:53 +0000
                Re: reduce all spaces to one John <john_takethisoff@agdp.de> - 2012-02-05 18:05 +0100
  Re: reduce all spaces to one "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-02-03 21:30 +0100

csiph-web