Re: [PHP] Re: split on whitespace, preserving whitespace... (a rephrase of the question)

2001-07-20 Thread Garth Dahlstrom

On Fri, 20 Jul 2001 15:34:48 +0200 Stefan Rusterholz wrote:

 If you'r using PHP 4 use preg_split. (works also with php 3 = 3.09)
 see http://www.php.net/manual/en/function.preg-split.php for detailed
 information.
 The split pattern you'd need is:
 $sometext2split = hello world  witha  lot   ofwhitespaces!;
 $myarray = preg_split (/\s+/,$sometext2split);
 
 you should get
 $myarray := ['hello', 'world', 'with', 'a', 'lot', 'of', 'whitespaces!']

That's not what I'm after though 
perhaps I should rephrase the question...

I want to do a split/explode on:
hello world  witha  lot   ofwhitespaces!
on spaces... in such a manner that when I join/implode 
it back together I get:
hello world  witha  lot   ofwhitespaces!
not:
hello world with a lot of whitespaces missing!

I'd be happy if I could even get:
$myarray = [hello , world  ,with,a  ,lot   ,
of,whitespaces!]

'cause I could spell check based on trimming the entry.

-Garth

Northern.CA ===--
http://www.northern.ca 
Canada's Search Engine



 
 But remark: \t (tabs) will also count as whitespace, but not \n and
 \r. See
 docu for more informations
 
 Hope, it helps
 best regards
 Stefan Rusterholz, [EMAIL PROTECTED]
 
 
 - Original Message -
 From: Garth Dahlstrom [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Friday, July 20, 2001 1:44 PM
 Subject: [PHP] Re: split on whitespace, preserving whitespace...
 
 
   try $wordarr = explode( , $string);
 
  mmm... yeah...  That's what I had before
  (acutally I was using the alias split)...
  it does NOT however preserve the areas
  of white space.
 
  Instead the target of:
$wordsarr = ('This','  ','contans','','white',' ','space','
 ','.')
 
  You get:
$wordsarr = ('This','','contans','','white','space','','.')
 
  which has totally destroyed the whitespace I'm trying to
  keep intacted.
 
  I'm starting to wonder if maybe preg_match_all is better
  suited for something like this... just no idea how to do
  the regex that matches words  spaces and populates them
  into the array.
 
  maybe something like: echo
 preg_match_all(|(\s+)?(.*)?(\s+)?|,$test,$arr);
  sigh... I dunno regex.
 
  -Garth
 
  Northern.CA ===--
  http://www.northern.ca
  Canada's Search Engine
 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP] Re: split on whitespace, preserving whitespace... (a rephrase of the question)

2001-07-20 Thread Stefan Rusterholz

I thought, Jack's solution should work (with php 4.05 and above), but
however if you say it doesn't then there is another solution. I don't find
it very hmm good, but it should work (I cannot test it, because a cant
rund php on this machine):

$text=your  space containing  text;
$splittext = new Array();
while ($text){
preg_match(/[^\s]+,$text);
if ($machtes[1]){$splittext[]=$matches[1];}
preg_replace(/$matches[1]/,,$text);

preg_match(/[\s]+,$text);
if ($machtes[1]){$splittext[]=$matches[1];}
preg_replace(/$matches[1]/,,$text);
}


If it doesn't work, I'm sorry, but currently I'm not able to test it. But I
hope, you can see the idea behind it.

best regards
Stefan Rusterholz, [EMAIL PROTECTED]


- Original Message -
From: Garth Dahlstrom [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Friday, July 20, 2001 4:13 PM
Subject: Re: [PHP] Re: split on whitespace, preserving whitespace... (a
rephrase of the question)


 On Fri, 20 Jul 2001 15:34:48 +0200 Stefan Rusterholz wrote:

  If you'r using PHP 4 use preg_split. (works also with php 3 = 3.09)
  see http://www.php.net/manual/en/function.preg-split.php for detailed
  information.
  The split pattern you'd need is:
  $sometext2split = hello world  witha  lot   ofwhitespaces!;
  $myarray = preg_split (/\s+/,$sometext2split);
 
  you should get
  $myarray := ['hello', 'world', 'with', 'a', 'lot', 'of', 'whitespaces!']

 That's not what I'm after though
 perhaps I should rephrase the question...

 I want to do a split/explode on:
 hello world  witha  lot   ofwhitespaces!
 on spaces... in such a manner that when I join/implode
 it back together I get:
 hello world  witha  lot   ofwhitespaces!
 not:
 hello world with a lot of whitespaces missing!

 I'd be happy if I could even get:
 $myarray = [hello , world  ,with,a  ,lot   ,
 of,whitespaces!]

 'cause I could spell check based on trimming the entry.

 -Garth

 Northern.CA ===--
 http://www.northern.ca
 Canada's Search Engine



 
  But remark: \t (tabs) will also count as whitespace, but not \n and
  \r. See
  docu for more informations
 
  Hope, it helps
  best regards
  Stefan Rusterholz, [EMAIL PROTECTED]
 
 
  - Original Message -
  From: Garth Dahlstrom [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Cc: [EMAIL PROTECTED]
  Sent: Friday, July 20, 2001 1:44 PM
  Subject: [PHP] Re: split on whitespace, preserving whitespace...
 
 
try $wordarr = explode( , $string);
  
   mmm... yeah...  That's what I had before
   (acutally I was using the alias split)...
   it does NOT however preserve the areas
   of white space.
  
   Instead the target of:
 $wordsarr = ('This','  ','contans','','white',' ','space','
  ','.')
  
   You get:
 $wordsarr = ('This','','contans','','white','space','','.')
  
   which has totally destroyed the whitespace I'm trying to
   keep intacted.
  
   I'm starting to wonder if maybe preg_match_all is better
   suited for something like this... just no idea how to do
   the regex that matches words  spaces and populates them
   into the array.
  
   maybe something like: echo
  preg_match_all(|(\s+)?(.*)?(\s+)?|,$test,$arr);
   sigh... I dunno regex.
  
   -Garth
  
   Northern.CA ===--
   http://www.northern.ca
   Canada's Search Engine
  






-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP] Re: split on whitespace, preserving whitespace... (a rephrase of the question)

2001-07-20 Thread CC Zona

In article [EMAIL PROTECTED],
 [EMAIL PROTECTED] (Garth Dahlstrom) wrote:

  $sometext2split = hello world  witha  lot   ofwhitespaces!;
  $myarray = preg_split (/\s+/,$sometext2split);
  
  you should get
  $myarray := ['hello', 'world', 'with', 'a', 'lot', 'of', 'whitespaces!']
 
 That's not what I'm after though 
snip
 I'd be happy if I could even get:
 $myarray = [hello , world  ,with,a  ,lot   ,
 of,whitespaces!]
 
 'cause I could spell check based on trimming the entry.

Maybe you've already tried this and rejected this for some reason, but my 
inclination would be to split on \b (the non-character boundary between a 
\s+ next to a \w+).

-- 
CC

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]