what about?

$str = "a bc def ghij klmno p qr i'd do, it. stu vwxy a";
$az = "[a-zA-Z']";
$str = str_replace(",", " , ", $str);
$str = str_replace(".", " . ", $str);
$str = trim(preg_replace(array("/ $az /", "/ $az$az /", "/ $az$az$az /"), "
", " $str "));  // couldn't get "/ [a-zA-Z]{1,3} /" to work :(
$str = str_replace("  ", " ", $str);
$str = str_replace(" ,", ",", $str);
$str = str_replace(" .", ".", $str);
$str = str_replace(",.", ".", $str);

echo $str;

-----Original Message-----
From: Douglas Maclaine-cross [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 08, 2002 11:09 AM
To: 'Edward van Bilderbeek - Bean IT'; Michael Kimsal;
[EMAIL PROTECTED]
Subject: RE: [PHP] Regex function needed


I don't know about preg but how about this monster?

$str = "I'm okay now aren't I. Do I work? 'mm";

while(eregi(' [a-z\']{1,3} ', $str)) 
        $str = eregi_replace(' [a-z\']{1,3} ', ' ', $str);

while(eregi(' [a-z\']{1,3}([^a-z\' ])', $str)) 
        $str = eregi_replace(' [a-z\']{1,3}([^a-z\' ])', '\1', $str);

while(eregi('([^a-z\' ])[a-z\']{1,3} ', $str)) 
        $str = eregi_replace('([^a-z\' ])[a-z\']{1,3} ', '\1', $str);

$str = eregi_replace('^[a-z\']{1,3} ', '', $str);
$str = eregi_replace('^[a-z\']{1,3}([^a-z\'])', '\1', $str);

$str = eregi_replace(' [a-z\']{1,3}$', '', $str);
$str = eregi_replace('([^a-z\' ])[a-z\']{1,3}$', '\1', $str);

echo $str;

-----Original Message-----
From: Edward van Bilderbeek - Bean IT [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 08, 2002 11:09
To: Michael Kimsal; [EMAIL PROTECTED]
Subject: Re: [PHP] Regex function needed


after some puzzling I came to this:

$str = "One as a start. This is or was a test for short words, although an,
should be deleted to.";

$str = preg_replace(array("/\b[A-Za-z']{1,3}\b/",
"/[ ]{1}([ ]{1}|[,]{1}|[.]{1}|[:]{1})/"), array("", "\\1"), $str);

print $str;




which means:
first: replace all 1,2 or 3 character occurrences by nothing.... after that,
replace all spaces that are followed by one comma, or one period, or one :
by that comma, period or :

hope this is what you wanted?

Edward


----- Original Message -----
From: "Bas Jobsen" <[EMAIL PROTECTED]>
To: "Michael Kimsal" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Friday, February 08, 2002 1:10 AM
Subject: Re: [PHP] Regex function needed


> Op donderdag 07 februari 2002 23:58, schreef Michael Kimsal:
> > Looking for a regex (preg or ereg) to remove
> > all 1, 2 and 3 character words.
>
> <?
> $string="over deze regex loop ik nu al de hele dag en een uur te piekeren.
't
> wil niet! of wel! l'a.";
> $string=" ".$string;
> while (preg_match("/\W\w{1,3}\W/i",$string))
> $string = preg_replace("/\W\w{1,3}\W/i", " ", $string);
> $string=substr($string,1);
> echo $string;
> ?>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to