|
|
|
| Есть строка состоящая из текста и цифр, между ними может быть пробел, а может и не быть.
дак вот нужно разбросать текст в одну сторону, цифры в другую.
примеры строк:
<?
$str = 'test 1234';
preg_match('/^(.*)([0-9]{3,4})/',$str,$match);
print_r($match);
?>
|
код работает нормально если число 3 значное.
если дать 4 значное то первый знак поместит в первый элемент массива
$match[1] = test 1 $match[2] = 234
Помогите сделать корректную разбивку. | |
|
|
|
|
|
|
|
для: skor
(18.01.2008 в 19:19)
| | вместо .* пишите [^0-9]* и уберите ^
<?
$str = 'test 1234';
preg_match('/([^0-9]*)([0-9]{3,4})/',$str,$match);
print_r($match);
?> | |
|
|
|
|
|
|
|
для: ddhvvn
(18.01.2008 в 19:40)
| | Благодарю, все четко работает. Спасибо! | |
|
|
|
|
|
|
|
для: skor
(18.01.2008 в 19:51)
| | А если будет 5 цифр?
Или это Вас не волнует и стабильно должно быть от 3 до 4 ? | |
|
|
|
|
|
|
|
для: Faraon
(19.01.2008 в 02:53)
| | Видимо, да =) | |
|
|
|
|
|
|
|
для: Faraon
(19.01.2008 в 02:53)
| | ну тогда сделаю так ) {3,5} | |
|
|
|
|
|
|
|
для: skor
(20.01.2008 в 01:56)
| | А если 6? | |
|
|
|
|
|
|
|
для: Unkind
(20.01.2008 в 12:16)
| | | |
|
|
|
|
|
|
|
для: SHAman
(20.01.2008 в 12:41)
| | Что же Вы не дали автору ответить. | |
|
|
|