Конечно, вы всегда можете использовать регулярное выражение для этого, которое WAAAAY быстрее, но я хотел бы показать вам, что вы можете сделать это без регулярных выражений. Есть больше способов решить проблему. Как Харви Спектра, персонаж из «Костюмы» сказал бы: «Если кто-то указывает пистолет к голове, есть 146 способов, вы можете защитить себя»;)
Вот ... попробуй это:
$string = 'C1 X2 B10';
$explode = explode(' ', $string);
$i = 0;
foreach ($explode as $exp){
$number = substr($exp, 1);
$letter = substr($exp, 0, 1);
$array[$i]['type'] = $letter;
$array[$i]['number'] = $number;
$i++;
}
echo '<pre>';
print_r($array);
echo '</pre>';
выход будет:
Array
(
[0] => Array
(
[type] => C
[number] => 1
)
[1] => Array
(
[type] => X
[number] => 2
)
[2] => Array
(
[type] => B
[number] => 10
)
)
ВНИМАНИЕ !! Это решение будет работать только в том случае, если у вас есть только 1 буква, только в начале, с элементами, разделенными пробелом в строке!
Надеюсь, это поможет! : D
Вам действительно не нужно регулярное выражение, чтобы это сделать ... вы можете просто взорвать строку на «" (пробел), а затем отделить буквы от цифр и создать свой массив :) –
Я изменил свой оригинальный вопрос и добавили, какие изменения будут в строке. – aevans