On Fri, 14 Jun 2002, 1LT John W. Holmes wrote: >-You have your answer, just use this: >- >-$outstring = eregi_replace("badword","goodword",$stringtocheck); >- >-It'll replace it whether it's at the beginning or end of a string, embedded >-in a word, or by itself. Isn't that what you want? >-
Not quite. I want to replace words like "ass" and leave works like "assumption" in place. Actually, I did find the answer to the beginning and end of word regex syntax. It is. $outstring = \ eregi_replace("[[:<:]]badword[[:>:]]","goodword",$stringtocheck); This constrains the word and will only act if it is surrounded by non-alpha characters. It acts just like /< and />. I found this answer in the MySQL web page of all things... http://www.mysql.com/doc/R/e/Regexp.html Thanks for your input. John >-Actually, it'd be better and faster to just use str_replace() instead of a >-regular expression... >- >----John Holmes... >- >------ Original Message ----- >-From: "John S. Huggins" <[EMAIL PROTECTED]> >-To: <[EMAIL PROTECTED]> >-Sent: Friday, June 14, 2002 11:37 AM >-Subject: [PHP] Beginning /< and end of word /> in eregi_replace >- >- >-> >-> Can it be true that PHP does not implement the beginning and end of word >-> syntax of regular expressions? >-> >-> In builing a bad word filter, I find this... >-> >-> $outstring = eregi_replace("badword$","goodword",$stringtocheck); >-> >-> will find an occurance of the 'badword' at the end of the string and >-> replace it. >-> >-> Similarly, >-> >-> $outstring = eregi_replace("^badword","goodword",$stringtocheck); >-> >-> will find an occurance of the 'badword' at the beginning of the string >-> and replace it. >-> >-> Also, >-> >-> $outstring = eregi_replace("badword","goodword",$stringtocheck); >-> >-> will find all occurances of 'badword' even if they are part of a longer >-> not so bad word like 'badwordage' and replace it. >-> >-> Then, >-> >-> $outstring = eregi_replace(" badword ","goodword",$stringtocheck); >-> >-> will help me isolate just the actual bad word, but not those at the >-> beginning and end of a string or that end in a period or comma. >-> >-> So I could make a rule for each possible placement of badword in a string >-> and then do this for each vulger term I try to filter. Or I could just >-> do... >-> >-> $outstring = eregi_replace("/<badword/>","goodword",$stringtocheck); >-> >-> Which should find any occurance of 'badword' and nothing more anywhere in >-> the string. It works in grep. It works in bash. It does not seem to >-> work in PHP. >-> >-> Anybody know what I might be doing wrong? >-> >-> ************************************** >-> >-> John Huggins >-> VANet >-> >-> [EMAIL PROTECTED] >-> http://www.va.net/ >-> >-> ************************************** >-> >-> >-> -- >-> 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 >- ************************************** John Huggins VANet [EMAIL PROTECTED] http://www.va.net/ ************************************** -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php