| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [2003-06-05 08:43 UTC] andrei@php.net
  | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 13:00:02 2025 UTC | 
I slammed into this whilst converting Access data into MySQL. I was attempting to break apart the following into words (* here indicates that it fails to match /[\w,.-?]/): |*|W|a|s|h|i|n|g|t|o|n|,|*|D|C|*|* // text 057617368696e67746f6e2c20444320200 // hex I first tried splitting on any white space or commas: preg_match( '/[\\s,]+/', $string, PREG_SPLIT_NO_EMPTY ); When this didn't work, I examined the hexadecimal values as above, and, assuming that control characters weren't included in the \s group, tried several things, including the very simple: preg_match( '/\\W/', $string, PREG_SPLIT_NO_EMPTY ); Nothing worked, and ultimately I had to use preg_match_all() to split the string up. Example: $string = chr(5) . 'Washington,' . chr(4) . 'DC' . chr(2); $parts = preg_split( '/\\W/', $string, PREG_SPLIT_NO_EMPTY ); echo join('|', $parts);