On 22 June 2010 16:44, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx> wrote: > On Tue, 2010-06-22 at 11:40 -0400, Rick Dwyer wrote: > >> Hello List. >> >> I need to remove characters from a string and replace them with and >> underscore. >> >> So instead of having something like: >> >> $moditem = str_replace("--","_","$mystring"); >> $moditem = str_replace("?","_","$mystring"); >> $moditem = str_replace("!","_","$mystring"); >> ....etc. >> >> For every possible character I can think of, is there a way to simply >> omit any character that is not an alpha character and not a number >> value from 0 to 9? >> >> >> --Rick >> >> >> > > > Use preg_replace(), which allows you to use a regex to specify what you > want to match: > > $find = '/[^a-z0-9]/i'; > $replace = '_'; > $new_string = preg_replace($find, $replace, $old_string); > > Thanks, > Ash > http://www.ashleysheridan.co.uk > > > Watch out for white space in there. Tabs, spaces, new lines, etc. will also be converted to underscore. $find = '/[^\w\s]/i'; [^\w\s] Match a single character NOT present in the list below «[^\w\s]» A word character (letters, digits, and underscores) «\w» A whitespace character (spaces, tabs, and line breaks) «\s» "A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w." -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php