Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отделить текст от цифр
 
 автор: skor   (18.01.2008 в 19:19)   письмо автору
 
 

Есть строка состоящая из текста и цифр, между ними может быть пробел, а может и не быть.
дак вот нужно разбросать текст в одну сторону, цифры в другую.
примеры строк:

test 1234
test123



<?
$str 
'test 1234';
preg_match('/^(.*)([0-9]{3,4})/',$str,$match);
print_r($match);
?>

код работает нормально если число 3 значное.
если дать 4 значное то первый знак поместит в первый элемент массива
$match[1] = test 1 $match[2] = 234

Помогите сделать корректную разбивку.

   
 
 автор: ddhvvn   (18.01.2008 в 19:40)   письмо автору
 
   для: skor   (18.01.2008 в 19:19)
 

вместо .* пишите [^0-9]* и уберите ^

<?
$str = 'test 1234';
preg_match('/([^0-9]*)([0-9]{3,4})/',$str,$match);
print_r($match);
?>

   
 
 автор: skor   (18.01.2008 в 19:51)   письмо автору
 
   для: ddhvvn   (18.01.2008 в 19:40)
 

Благодарю, все четко работает. Спасибо!

   
 
 автор: Faraon   (19.01.2008 в 02:53)   письмо автору
 
   для: skor   (18.01.2008 в 19:51)
 

А если будет 5 цифр?
Или это Вас не волнует и стабильно должно быть от 3 до 4 ?

   
 
 автор: ddhvvn   (19.01.2008 в 10:28)   письмо автору
 
   для: Faraon   (19.01.2008 в 02:53)
 

Видимо, да =)

   
 
 автор: skor   (20.01.2008 в 01:56)   письмо автору
 
   для: Faraon   (19.01.2008 в 02:53)
 

ну тогда сделаю так ) {3,5}

   
 
 автор: Unkind   (20.01.2008 в 12:16)   письмо автору
 
   для: skor   (20.01.2008 в 01:56)
 

А если 6?

   
 
 автор: SHAman   (20.01.2008 в 12:41)   письмо автору
 
   для: Unkind   (20.01.2008 в 12:16)
 

([^0-9 ]+)\s*(\d+)

   
 
 автор: Unkind   (20.01.2008 в 12:57)   письмо автору
 
   для: SHAman   (20.01.2008 в 12:41)
 

Что же Вы не дали автору ответить.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования