preg_match? Or something else?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have an array that's created as follows:

 

$string = "73G    146C   311-     309.1C";

$arr = preg_split("/[\s]+/", $string);

 

Now I need to take each element in that array, and break them up even
further so that I get:

 

73G    => "73" and "G"

146C   => "146" and "C"

311-   => "311" and "-"

309.1C => "309", "1", and "C"  (notice 3 elements here)

 

I'm having a hard time trying to figure out what the proper regex would be
for this, or whether that's the right thing to do.  So far I've gotten this:

 

  preg_match("/^(?P<location>\d+)(?P<letter>[A-Z-])/", $item, $matches);

  print_r($matches);

 

Which gives me:

 

Array

(

    [0] => 73G

    [location] => 73

    [1] => 73

    [letter] => G

    [2] => G

)

Array

(

    [0] => 146C

    [location] => 146

    [1] => 146

    [letter] => C

    [2] => C

)

Array

(

    [0] => 311-

    [location] => 311

    [1] => 311

    [letter] => -

    [2] => -

)

Array

(

)

 

 

However that's as far as it goes.  For the other number it returns an empty
array and I know why, the decimal point.   Now I can evaluate each $item
every time, see if they contain a decimal point, and pass it to a different
regex string, but that seems rather inefficient to me.  So how can I do this
all in one fell swoop?

 

Anyone want to take a stab at it?


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux