RE: [PHP] Regex function needed
| From: | Martin Towell | Date: | Fri, 08 Feb 2002 00:25:53 +0000 |
| Subject: | RE: [PHP] Regex function needed | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-83939@lists.php.net to get a copy of this message | ||
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:douglas.maclaine@world.net]
Sent: Friday, February 08, 2002 11:09 AM
To: 'Edward van Bilderbeek - Bean IT'; Michael Kimsal;
php-general@lists.php.net
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:edward@bean-it.nl]
Sent: Friday, February 08, 2002 11:09
To: Michael Kimsal; php-general@lists.php.net
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" <bas@startpunt.cc>
To: "Michael Kimsal" <michael@tapinternet.com>; <php-general@lists.php.net>
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