FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » reduce all spaces to one
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: reduce all spaces to one [message #176907 is a reply to message #176906] Sat, 04 February 2012 21:00 Go to previous messageGo to previous message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma:
Senior Member
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(at)attglobal(dot)net
==================
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Stats comp.lang.php (last 7 days)
Next Topic: Check email
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Fri Sep 20 14:51:29 GMT 2024

Total time taken to generate the page: 0.04834 seconds